diff --git a/ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/aspectj/DataScopeAspect.java b/ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/aspectj/DataScopeAspect.java index 7075fdb..fb652cf 100644 --- a/ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/aspectj/DataScopeAspect.java +++ b/ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/aspectj/DataScopeAspect.java @@ -109,7 +109,7 @@ public class DataScopeAspect { sqlString.append(StringUtils.format(" OR {}.dept_id = {} ", deptAlias, user.getDeptId())); } else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope)) { sqlString.append(StringUtils.format( - " OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or find_in_set( {} , ancestors ) )", + " OR {}.dept_id IN ( SELECT dept_id FROM ums_dept WHERE dept_id = {} or find_in_set( {} , ancestors ) )", deptAlias, user.getDeptId(), user.getDeptId())); } else if (DATA_SCOPE_SELF.equals(dataScope)) { if (StringUtils.isNotBlank(userAlias)) { diff --git a/ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/web/service/SysLoginService.java b/ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/web/service/SysLoginService.java index 2e52fe5..f86ed5a 100644 --- a/ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/web/service/SysLoginService.java +++ b/ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/web/service/SysLoginService.java @@ -95,7 +95,7 @@ public class SysLoginService { AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"), null)); LoginUser loginUser = (LoginUser) authentication.getPrincipal(); //非总测评师不能登录 - if (!loginUser.getUser().isAdmin() || CollectionUtil.isEmpty(loginUser.getUser().getRoles()) || !loginUser.getUser().getRoles().stream().map(e -> e.getRoleKey()).collect(Collectors.toList()).contains("yy_zcps")) { + if (!loginUser.getUser().isAdmin() && (CollectionUtil.isEmpty(loginUser.getUser().getRoles()) || !loginUser.getUser().getRoles().stream().map(e -> e.getRoleKey()).collect(Collectors.toList()).contains("yy_zcps"))) { throw new BaseException(ErrorConstant.USER_NO_PERMISSION); } recordLoginInfo(loginUser.getUserId()); diff --git a/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/dto/ScaleDto.java b/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/dto/ScaleDto.java index 69ad335..d495eb1 100644 --- a/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/dto/ScaleDto.java +++ b/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/dto/ScaleDto.java @@ -193,6 +193,8 @@ public class ScaleDto { private Long version; private Long parentId; private String level; + @ApiModelProperty("患者ID") + private Long patientId; } diff --git a/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/persist/dao/StatisticsDao.java b/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/persist/dao/StatisticsDao.java index dc92dcd..9033170 100644 --- a/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/persist/dao/StatisticsDao.java +++ b/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/persist/dao/StatisticsDao.java @@ -16,78 +16,104 @@ public interface StatisticsDao { /** * 综合数据 + * * @param dto * @return */ - HomeDpVo.Zhsjgl nntotal(@Param("dto") StatisticsDto.Query dto); + HomeDpVo.Zhsjgl nntotal(@Param("dto") StatisticsDto.Query dto, + @Param("deptIdLIst") List deptIdLIst); Integer getPatientNum(@Param("dto") StatisticsDto.Query dto, - @Param("sex") Byte sex); + @Param("sex") Byte sex, + @Param("deptIdLIst") List deptIdLIst); /** * BMI + * * @param dto * @return */ - HomeDpVo.Bmi nnbmihjxy(@Param("dto") StatisticsDto.Query dto); + HomeDpVo.Bmi nnbmihjxy(@Param("dto") StatisticsDto.Query dto, + @Param("deptIdLIst") List deptIdLIst); /** * 最新评估情况 + * * @param dto * @return */ - List nnlast(@Param("dto") StatisticsDto.Query dto); + List nnlast(@Param("dto") StatisticsDto.Query dto, + @Param("deptIdLIst") List deptIdLIst); /** * 年龄分布 + * * @param dto * @return */ - HomeDpVo.Nlfb nnage(@Param("dto") StatisticsDto.Query dto); + HomeDpVo.Nlfb nnage(@Param("dto") StatisticsDto.Query dto, + @Param("deptIdLIst") List deptIdLIst); /** * T值分析 + * * @param dto * @return */ - HomeDpVo.Tz nntgb(@Param("dto") StatisticsDto.Query dto); + HomeDpVo.Tz nntgb(@Param("dto") StatisticsDto.Query dto, + @Param("deptIdLIst") List deptIdLIst); - HomeDpVo.Ypzb nnYpzb(@Param("dto") StatisticsDto.Query dto); + HomeDpVo.Ypzb nnYpzb(@Param("dto") StatisticsDto.Query dto, + @Param("deptIdLIst") List deptIdLIst); /** * 疾病排行 + * * @param dto * @return */ - List nnicd(@Param("dto") StatisticsDto.Query dto); + List nnicd(@Param("dto") StatisticsDto.Query dto, + @Param("deptIdLIst") List deptIdLIst); /** * 地图 + * * @param dto * @return */ - List nnmap(@Param("dto") StatisticsDto.Query dto); + List nnmap(@Param("dto") StatisticsDto.Query dto, + @Param("deptIdLIst") List deptIdLIst); /** * 评估结果 + * * @param dto * @return */ - List nnscale(@Param("dto") StatisticsDto.Query dto); + List nnscale(@Param("dto") StatisticsDto.Query dto, + @Param("deptIdLIst") List deptIdLIst); - List qualificationStatistics(@Param("dto") StatisticsDto.Query dto); + List qualificationStatistics(@Param("dto") StatisticsDto.Query dto, + @Param("deptIdLIst") List deptIdLIst); - HomeDpVo.JzStatistics JzStatistics(@Param("param") StatisticsDto.Query dto); + HomeDpVo.JzStatistics JzStatistics(@Param("param") StatisticsDto.Query dto, + @Param("deptIdLIst") List deptIdLIst); - HomeDpVo.JzStatistics JzStatisticsNum(@Param("dto") StatisticsDto.Query dto); + HomeDpVo.JzStatistics JzStatisticsNum(@Param("dto") StatisticsDto.Query dto, + @Param("deptIdLIst") List deptIdLIst); - List scaleStatistics(@Param("dto") StatisticsDto.Query dto); + List scaleStatistics(@Param("dto") StatisticsDto.Query dto, + @Param("deptIdLIst") List deptIdLIst); - List versionStatistics(@Param("dto") StatisticsDto.Query dto); + List versionStatistics(@Param("dto") StatisticsDto.Query dto, + @Param("deptIdLIst") List deptIdLIst); - List userStatistics(@Param("dto") StatisticsDto.Query dto); + List userStatistics(@Param("dto") StatisticsDto.Query dto, + @Param("deptIdLIst") List deptIdLIst); - HomeDpVo.SexStatistics sexStatistics(@Param("dto") StatisticsDto.Query dto); + HomeDpVo.SexStatistics sexStatistics(@Param("dto") StatisticsDto.Query dto, + @Param("deptIdLIst") List deptIdLIst); - HomeDpVo.XyYjStatistics xyYjStatistics(@Param("dto") StatisticsDto.Query dto); + HomeDpVo.XyYjStatistics xyYjStatistics(@Param("dto") StatisticsDto.Query dto, + @Param("deptIdLIst") List deptIdLIst); } diff --git a/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/service/StatisticsService.java b/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/service/StatisticsService.java index c16bc8f..b996007 100644 --- a/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/service/StatisticsService.java +++ b/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/service/StatisticsService.java @@ -14,32 +14,32 @@ import java.util.List; */ public interface StatisticsService { - HomeDpVo.Zhsjgl nntotal(StatisticsDto.Query dto); + HomeDpVo.Zhsjgl nntotal(StatisticsDto.Query dto, List deptIdLIst); - HomeDpVo.Bmi nnbmihjxy(StatisticsDto.Query dto); - List nnlast(StatisticsDto.Query dto); - HomeDpVo.Nlfb nnage(StatisticsDto.Query dto); - HomeDpVo.Tz nntgb(StatisticsDto.Query dto); - List nnicd(StatisticsDto.Query dto); - List nnmap(StatisticsDto.Query dto); - List nnscale(StatisticsDto.Query dto); + HomeDpVo.Bmi nnbmihjxy(StatisticsDto.Query dto, List deptIdLIst); + List nnlast(StatisticsDto.Query dto, List deptIdLIst); + HomeDpVo.Nlfb nnage(StatisticsDto.Query dto, List deptIdLIst); + HomeDpVo.Tz nntgb(StatisticsDto.Query dto, List deptIdLIst); + List nnicd(StatisticsDto.Query dto, List deptIdLIst); + List nnmap(StatisticsDto.Query dto, List deptIdLIst); + List nnscale(StatisticsDto.Query dto, List deptIdLIst); /** * 学历统计 * @param dto * @return */ - List qualificationStatistics(StatisticsDto.Query dto); + List qualificationStatistics(StatisticsDto.Query dto, List deptIdLIst); - HomeDpVo.JzStatistics jzStatistics(StatisticsDto.Query dto); + HomeDpVo.JzStatistics jzStatistics(StatisticsDto.Query dto, List deptIdLIst); - List scaleStatistics(StatisticsDto.Query dto); + List scaleStatistics(StatisticsDto.Query dto, List deptIdLIst); - List versionStatistics(StatisticsDto.Query dto); + List versionStatistics(StatisticsDto.Query dto, List deptIdLIst); - List userStatistics(StatisticsDto.Query dto); + List userStatistics(StatisticsDto.Query dto, List deptIdLIst); - HomeDpVo.SexStatistics sexStatistics(StatisticsDto.Query dto); + HomeDpVo.SexStatistics sexStatistics(StatisticsDto.Query dto, List deptIdLIst); - HomeDpVo.XyYjStatistics xyYjStatistics(StatisticsDto.Query dto); + HomeDpVo.XyYjStatistics xyYjStatistics(StatisticsDto.Query dto, List deptIdLIst); } diff --git a/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/service/impl/StatisticsServiceImpl.java b/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/service/impl/StatisticsServiceImpl.java index e84aed1..25e12ee 100644 --- a/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/service/impl/StatisticsServiceImpl.java +++ b/ruisi_java/ruisi-system/src/main/java/com/ccsens/system/service/impl/StatisticsServiceImpl.java @@ -26,112 +26,112 @@ public class StatisticsServiceImpl implements StatisticsService { private StatisticsDao statisticsDao; @Override - public HomeDpVo.Zhsjgl nntotal(StatisticsDto.Query dto) { + public HomeDpVo.Zhsjgl nntotal(StatisticsDto.Query dto, List deptIdLIst) { if (dto.getTimeType() != null) { List dateByType = getDateByType(dto.getTimeType(), dto.getBeginTime()); dto.setBeginTime(dateByType.get(0)); dto.setEndTime(dateByType.get(1)); } - HomeDpVo.Zhsjgl nntotal = statisticsDao.nntotal(dto); + HomeDpVo.Zhsjgl nntotal = statisticsDao.nntotal(dto, deptIdLIst); if (nntotal == null) { nntotal = new HomeDpVo.Zhsjgl(); } - nntotal.setPtotal(statisticsDao.getPatientNum(dto, null)); - nntotal.setMtotal(statisticsDao.getPatientNum(dto, (byte) 0)); - nntotal.setFtotal(statisticsDao.getPatientNum(dto, (byte) 1)); + nntotal.setPtotal(statisticsDao.getPatientNum(dto, null, deptIdLIst)); + nntotal.setMtotal(statisticsDao.getPatientNum(dto, (byte) 0, deptIdLIst)); + nntotal.setFtotal(statisticsDao.getPatientNum(dto, (byte) 1, deptIdLIst)); return nntotal; } @Override - public HomeDpVo.Bmi nnbmihjxy(StatisticsDto.Query dto) { + public HomeDpVo.Bmi nnbmihjxy(StatisticsDto.Query dto, List deptIdLIst) { if (dto.getTimeType() != null) { List dateByType = getDateByType(dto.getTimeType(), dto.getBeginTime()); dto.setBeginTime(dateByType.get(0)); dto.setEndTime(dateByType.get(1)); } - return statisticsDao.nnbmihjxy(dto); + return statisticsDao.nnbmihjxy(dto, deptIdLIst); } @Override - public List nnlast(StatisticsDto.Query dto) { + public List nnlast(StatisticsDto.Query dto, List deptIdLIst) { if (dto.getTimeType() != null) { List dateByType = getDateByType(dto.getTimeType(), dto.getBeginTime()); dto.setBeginTime(dateByType.get(0)); dto.setEndTime(dateByType.get(1)); } - return statisticsDao.nnlast(dto); + return statisticsDao.nnlast(dto, deptIdLIst); } @Override - public HomeDpVo.Nlfb nnage(StatisticsDto.Query dto) { + public HomeDpVo.Nlfb nnage(StatisticsDto.Query dto, List deptIdLIst) { if (dto.getTimeType() != null) { List dateByType = getDateByType(dto.getTimeType(), dto.getBeginTime()); dto.setBeginTime(dateByType.get(0)); dto.setEndTime(dateByType.get(1)); } - return statisticsDao.nnage(dto); + return statisticsDao.nnage(dto, deptIdLIst); } @Override - public HomeDpVo.Tz nntgb(StatisticsDto.Query dto) { + public HomeDpVo.Tz nntgb(StatisticsDto.Query dto, List deptIdLIst) { if (dto.getTimeType() != null) { List dateByType = getDateByType(dto.getTimeType(), dto.getBeginTime()); dto.setBeginTime(dateByType.get(0)); dto.setEndTime(dateByType.get(1)); } - return statisticsDao.nntgb(dto); + return statisticsDao.nntgb(dto, deptIdLIst); } @Override - public List nnicd(StatisticsDto.Query dto) { + public List nnicd(StatisticsDto.Query dto, List deptIdLIst) { if (dto.getTimeType() != null) { List dateByType = getDateByType(dto.getTimeType(), dto.getBeginTime()); dto.setBeginTime(dateByType.get(0)); dto.setEndTime(dateByType.get(1)); } - return statisticsDao.nnicd(dto); + return statisticsDao.nnicd(dto, deptIdLIst); } @Override - public List nnmap(StatisticsDto.Query dto) { + public List nnmap(StatisticsDto.Query dto, List deptIdLIst) { if (dto.getTimeType() != null) { List dateByType = getDateByType(dto.getTimeType(), dto.getBeginTime()); dto.setBeginTime(dateByType.get(0)); dto.setEndTime(dateByType.get(1)); } - return statisticsDao.nnmap(dto); + return statisticsDao.nnmap(dto, deptIdLIst); } @Override - public List nnscale(StatisticsDto.Query dto) { + public List nnscale(StatisticsDto.Query dto, List deptIdLIst) { if (dto.getTimeType() != null) { List dateByType = getDateByType(dto.getTimeType(), dto.getBeginTime()); dto.setBeginTime(dateByType.get(0)); dto.setEndTime(dateByType.get(1)); } - return statisticsDao.nnscale(dto); + return statisticsDao.nnscale(dto, deptIdLIst); } @Override - public List qualificationStatistics(StatisticsDto.Query dto) { + public List qualificationStatistics(StatisticsDto.Query dto, List deptIdLIst) { if (dto.getTimeType() != null) { List dateByType = getDateByType(dto.getTimeType(), dto.getBeginTime()); dto.setBeginTime(dateByType.get(0)); dto.setEndTime(dateByType.get(1)); } - return statisticsDao.qualificationStatistics(dto); + return statisticsDao.qualificationStatistics(dto, deptIdLIst); } @Override - public HomeDpVo.JzStatistics jzStatistics(StatisticsDto.Query dto) { + public HomeDpVo.JzStatistics jzStatistics(StatisticsDto.Query dto, List deptIdLIst) { if (dto.getTimeType() != null) { List dateByType = getDateByType(dto.getTimeType(), dto.getBeginTime()); dto.setBeginTime(dateByType.get(0)); dto.setEndTime(dateByType.get(1)); } -// HomeDpVo.JzStatistics jzStatistics = statisticsDao.JzStatisticsNum(dto); +// HomeDpVo.JzStatistics jzStatistics = statisticsDao.JzStatisticsNum(dto, deptIdLIst); // if (jzStatistics!= null) { - HomeDpVo.JzStatistics jzStatistics = statisticsDao.JzStatistics(dto); + HomeDpVo.JzStatistics jzStatistics = statisticsDao.JzStatistics(dto, deptIdLIst); // jzStatistics.setZyNum(jzStatistics1.getZyNum()); // jzStatistics.setMzNum(jzStatistics1.getMzNum()); // } @@ -139,37 +139,37 @@ public class StatisticsServiceImpl implements StatisticsService { } @Override - public List scaleStatistics(StatisticsDto.Query dto) { + public List scaleStatistics(StatisticsDto.Query dto, List deptIdLIst) { if (dto.getTimeType() != null) { List dateByType = getDateByType(dto.getTimeType(), dto.getBeginTime()); dto.setBeginTime(dateByType.get(0)); dto.setEndTime(dateByType.get(1)); } - return statisticsDao.scaleStatistics(dto); + return statisticsDao.scaleStatistics(dto, deptIdLIst); } @Override - public List versionStatistics(StatisticsDto.Query dto) { + public List versionStatistics(StatisticsDto.Query dto, List deptIdLIst) { if (dto.getTimeType() != null) { List dateByType = getDateByType(dto.getTimeType(), dto.getBeginTime()); dto.setBeginTime(dateByType.get(0)); dto.setEndTime(dateByType.get(1)); } - return statisticsDao.versionStatistics(dto); + return statisticsDao.versionStatistics(dto, deptIdLIst); } @Override - public List userStatistics(StatisticsDto.Query dto) { + public List userStatistics(StatisticsDto.Query dto, List deptIdLIst) { if (dto.getTimeType() != null) { List dateByType = getDateByType(dto.getTimeType(), dto.getBeginTime()); dto.setBeginTime(dateByType.get(0)); dto.setEndTime(dateByType.get(1)); } - return statisticsDao.userStatistics(dto); + return statisticsDao.userStatistics(dto, deptIdLIst); } @Override - public HomeDpVo.SexStatistics sexStatistics(StatisticsDto.Query dto) { + public HomeDpVo.SexStatistics sexStatistics(StatisticsDto.Query dto, List deptIdLIst) { if (dto.getTimeType() != null) { List dateByType = getDateByType(dto.getTimeType(), dto.getBeginTime()); dto.setBeginTime(dateByType.get(0)); @@ -177,15 +177,15 @@ public class StatisticsServiceImpl implements StatisticsService { } HomeDpVo.SexStatistics sexStatistics = new HomeDpVo.SexStatistics(); - sexStatistics.setBoy(statisticsDao.getPatientNum(dto, (byte) 0)); - sexStatistics.setGirl(statisticsDao.getPatientNum(dto, (byte) 1)); + sexStatistics.setBoy(statisticsDao.getPatientNum(dto, (byte) 0, deptIdLIst)); + sexStatistics.setGirl(statisticsDao.getPatientNum(dto, (byte) 1, deptIdLIst)); return sexStatistics; } @Override - public HomeDpVo.XyYjStatistics xyYjStatistics(StatisticsDto.Query dto) { - return statisticsDao.xyYjStatistics(dto); + public HomeDpVo.XyYjStatistics xyYjStatistics(StatisticsDto.Query dto, List deptIdLIst) { + return statisticsDao.xyYjStatistics(dto, deptIdLIst); } /** diff --git a/ruisi_java/ruisi-system/src/main/resources/mapper/dao/StatisticsDao.xml b/ruisi_java/ruisi-system/src/main/resources/mapper/dao/StatisticsDao.xml index 382b074..2f83260 100644 --- a/ruisi_java/ruisi-system/src/main/resources/mapper/dao/StatisticsDao.xml +++ b/ruisi_java/ruisi-system/src/main/resources/mapper/dao/StatisticsDao.xml @@ -14,15 +14,18 @@ ems_evaluation e LEFT JOIN ums_user u ON e.create_by = u.user_name where e.del_flag = 0 and e.complete_status != 0 - - AND u.dept_id = #{dto.deptId} - AND e.create_time >= #{dto.beginTime} AND e.create_time <= #{dto.endTime} + + AND u.dept_id IN + + #{item} + + - SELECT - DISTINCT - pp.id as patientId, - pp.`name` as patientName, + SELECT DISTINCT + a.patientId, + a.patientName, + a.sex, + a.idcard, + a.phone, -- 核心修复:将 a.mobile 改为 a.phone(与内层别名一致) + a.educationalStatus, + a.independentLivingSkills, + a.birthNumber, + a.dwellingState, + a.lastEvaluationTime, + a.lastTesterName, -- 修正之前的笔误(原 astTesterName) + a.evaluationCount, + a.createBy, + a.createTime, + a.hospitalName, + a.birthday, + a.career, + a.maritalStatus, + a.domicile, + a.nation, + a.nativePlace, + a.contactName, + a.contactRelation, + a.contactMobile, + a.address, + a.belief, + a.hobby, + a.aboBloodType, + a.rhBloodType + FROM + ( + SELECT DISTINCT + pp.id AS patientId, + pp.`name` AS patientName, pp.sex, --- pp.age, pp.idcard, - pp.mobile as phone, - pp.educational_status as educationalStatus, - pp.independent_living_skills as independentLivingSkills, - pp.birth_number as birthNumber, - pp.dwelling_state as dwellingState, - MAX(ee.create_time) as lastEvaluationTime, - uu.nick_name as lastTesterName, - COUNT(ee.id) as evaluationCount, - (select nick_name from ums_user where user_name = pp.create_by and del_flag = 0) as createBy, - pp.create_time as createTime, - ud.dept_name as hospitalName, + pp.mobile AS phone, -- 内层别名是 phone + pp.educational_status AS educationalStatus, + pp.independent_living_skills AS independentLivingSkills, + pp.birth_number AS birthNumber, + pp.dwelling_state AS dwellingState, + MAX(ee.create_time) AS lastEvaluationTime, + uu.nick_name AS lastTesterName, + COUNT(ee.id) AS evaluationCount, + (SELECT nick_name FROM ums_user WHERE user_name = pp.create_by AND del_flag = 0) AS createBy, + pp.create_time AS createTime, + ud.dept_name AS hospitalName, pp.birthday, pp.career, - pp.marital_status as maritalStatus, + pp.marital_status AS maritalStatus, pp.domicile, pp.nation, - pp.native_place as nativePlace, - pp.contact_name as contactName, - pp.contact_relation as contactRelation, - pp.contact_mobile as contactMobile, + pp.native_place AS nativePlace, + pp.contact_name AS contactName, + pp.contact_relation AS contactRelation, + pp.contact_mobile AS contactMobile, pp.address, pp.belief, pp.hobby, - pp.abo_blood_type as aboBloodType, - pp.rh_blood_type as rhBloodType + pp.abo_blood_type AS aboBloodType, + pp.rh_blood_type AS rhBloodType FROM pms_patient pp - LEFT JOIN ems_evaluation ee ON pp.id = ee.patient_id and ee.del_flag = 0 + LEFT JOIN ems_evaluation ee ON pp.id = ee.patient_id AND ee.del_flag = 0 LEFT JOIN ums_user uu ON ee.tester_id = uu.user_id LEFT JOIN ums_dept ud ON pp.hospital_id = ud.dept_id WHERE pp.del_flag = 0 + + + and pp.hospital_id IN + + #{item} + + + and ( pp.name like CONCAT('%',#{param.searchValue},'%') @@ -136,13 +174,13 @@ and pp.hospital_id = #{param.hospitalId} - + and pp.sex = #{param.sex} - and pp.hospital_id = #{param.deptId} + and pp.hospital_id = #{param.deptId} - + and pp.educational_status = #{param.educationalStatus} @@ -169,35 +207,112 @@ - - - and uu.dept_id IN ( - SELECT d.dept_id FROM ums_user u LEFT JOIN ums_dept d on (d.dept_id = u.dept_id or - FIND_IN_SET(u.dept_id,ancestors)) - WHERE user_id = #{userId} + GROUP BY + pp.id + UNION ALL + SELECT DISTINCT + pp.id AS patientId, + pp.`name` AS patientName, + pp.sex, + pp.idcard, + pp.mobile AS phone, -- 内层别名统一为 phone + pp.educational_status AS educationalStatus, + pp.independent_living_skills AS independentLivingSkills, + pp.birth_number AS birthNumber, + pp.dwelling_state AS dwellingState, + MAX(ee.create_time) AS lastEvaluationTime, + uu.nick_name AS lastTesterName, + COUNT(ee.id) AS evaluationCount, + (SELECT nick_name FROM ums_user WHERE user_name = pp.create_by AND del_flag = 0) AS createBy, + pp.create_time AS createTime, + ud.dept_name AS hospitalName, + pp.birthday, + pp.career, + pp.marital_status AS maritalStatus, + pp.domicile, + pp.nation, + pp.native_place AS nativePlace, + pp.contact_name AS contactName, + pp.contact_relation AS contactRelation, + pp.contact_mobile AS contactMobile, + pp.address, + pp.belief, + pp.hobby, + pp.abo_blood_type AS aboBloodType, + pp.rh_blood_type AS rhBloodType + FROM + pms_patient pp + LEFT JOIN pms_patient_body pb ON pb.patient_id = pp.id AND pb.del_flag = 0 + LEFT JOIN ems_evaluation ee ON pp.id = ee.patient_id AND ee.del_flag = 0 + LEFT JOIN ums_user uu ON ee.tester_id = uu.user_id + LEFT JOIN ums_dept ud ON pp.hospital_id = ud.dept_id + WHERE + pp.del_flag = 0 + + and ( + pp.name like CONCAT('%',#{param.searchValue},'%') + or + pp.name_initial like CONCAT('%',LOWER(#{param.searchValue}),'%') + or + pp.name_full like CONCAT('%',LOWER(#{param.searchValue}),'%') + or + pp.idcard like CONCAT('%',#{param.searchValue},'%') ) - - - - - - - - - - - - - - - - - - - - GROUP BY pp.id - order by pp.create_time desc + + and date_format(pp.create_time,'%y%m%d') >= date_format(#{param.beginTime},'%y%m%d') + + + and date_format(pp.create_time,'%y%m%d') <= date_format(#{param.endTime},'%y%m%d') + + + and pp.hospital_id = #{param.hospitalId} + + + and pp.sex = #{param.sex} + + + and pp.hospital_id = #{param.deptId} + + + and pp.educational_status = #{param.educationalStatus} + + + + + and (TIMESTAMPDIFF(YEAR, pp.birthday, CURDATE()) - + (DATE_FORMAT(CURDATE(), '%m%d') < DATE_FORMAT(pp.birthday, '%m%d'))) < 60 + + + and (TIMESTAMPDIFF(YEAR, pp.birthday, CURDATE()) - + (DATE_FORMAT(CURDATE(), '%m%d') < DATE_FORMAT(pp.birthday, '%m%d'))) BETWEEN 60 AND 69 + + + and (TIMESTAMPDIFF(YEAR, pp.birthday, CURDATE()) - + (DATE_FORMAT(CURDATE(), '%m%d') < DATE_FORMAT(pp.birthday, '%m%d'))) BETWEEN 70 AND 79 + + + and (TIMESTAMPDIFF(YEAR, pp.birthday, CURDATE()) - + (DATE_FORMAT(CURDATE(), '%m%d') < DATE_FORMAT(pp.birthday, '%m%d'))) BETWEEN 80 AND 89 + + + and (TIMESTAMPDIFF(YEAR, pp.birthday, CURDATE()) - + (DATE_FORMAT(CURDATE(), '%m%d') < DATE_FORMAT(pp.birthday, '%m%d'))) >= 90 + + + + + + and pp.hospital_id IN + + #{item} + + + + GROUP BY + pp.id + ) a + ORDER BY a.createTime DESC \ No newline at end of file diff --git a/ruisi_java/ruisi-web-admin/src/main/resources/mapper/dao/RmsDao.xml b/ruisi_java/ruisi-web-admin/src/main/resources/mapper/dao/RmsDao.xml index ab3923b..5f2f96d 100644 --- a/ruisi_java/ruisi-web-admin/src/main/resources/mapper/dao/RmsDao.xml +++ b/ruisi_java/ruisi-web-admin/src/main/resources/mapper/dao/RmsDao.xml @@ -1010,7 +1010,8 @@ d.dept_name as hospitalName WITH RECURSIVE cognitive_relevance_tree AS ( - SELECT - id AS node_id, - evaluation_id, - scale_code AS scale_code, - '' AS second_level_cognitive_code, - cognitive_code AS current_cognitive_code, - score AS level_score, - total_score AS level_total_score, - parent_id, - sort, - 1 AS level - FROM ems_evaluation_scale_cognitive_relevance - WHERE parent_id IS NULL - AND del_flag = 0 - UNION ALL - SELECT - child.id AS node_id, - child.evaluation_id, - parent.scale_code, - child.cognitive_code AS second_level_cognitive_code, - child.cognitive_code AS current_cognitive_code, - child.score AS level_score, - child.total_score AS level_total_score, - child.parent_id, - child.sort, - 2 AS level - FROM ems_evaluation_scale_cognitive_relevance child - INNER JOIN cognitive_relevance_tree parent - ON child.parent_id = parent.node_id - WHERE child.del_flag = 0 + SELECT + r.id AS scale_id, + r.evaluation_id, + r.scale_code AS scale_code, + q.name as name, + q.description, + r.score AS level_score, + q.total_score AS total_score, + r.parent_id, + r.sort, + 1 AS level + FROM ems_evaluation_scale_cognitive_relevance r + LEFT JOIN qms_scale q on r.scale_code = q.code + WHERE r.parent_id = 0 and r.del_flag = 0 and r.evaluation_id = #{evaluationId} + + and scale_code in ( + + #{item} + + ) + + + UNION ALL + SELECT + child.id AS scale_id, + child.evaluation_id, + child.cognitive_code AS scale_code, + c.name, + c.description, + child.score AS level_score, + child.total_score AS total_score, + child.parent_id, + child.sort, + 2 AS level + FROM ems_evaluation_scale_cognitive_relevance child + INNER JOIN cognitive_relevance_tree parent + ON child.parent_id = parent.scale_id + left join qms_cognitive_domain c on c.code = child.cognitive_code and c.parent_code = parent.scale_code + WHERE child.del_flag = 0 ) SELECT - rt.evaluation_id AS evaluationId, - rt.scale_code AS scaleCode, - rt.second_level_cognitive_code AS cognitiveCode, - rt.level_score AS score, - IF(rt.level_total_score = null , q.total_score, rt.level_total_score) AS totalScale, - rt.sort + rt.scale_id as scaleId, + rt.parent_id as parentId, + rt.name AS name, + rt.evaluation_id AS evaluationId, + rt.scale_code AS code, + rt.level_score AS score, + rt.sort as sort, + rt.total_score as totalScore, + r.combo_id as comboId FROM cognitive_relevance_tree rt - LEFT JOIN qms_scale q on rt.scale_code = q.code - ORDER BY evaluation_id, level, sort + left join ems_evaluation_scale_relevance r on r.evaluation_id = rt.evaluation_id and r.scale_code = rt.scale_code + group by rt.scale_code + ORDER BY rt.evaluation_id, rt.level, rt.sort - SELECT - DISTINCT - pp.id as patientId, - pp.`name` as patientName, + SELECT DISTINCT + a.patientId, + a.patientName, + a.sex, + a.idcard, + a.phone, -- 核心修复:将 a.mobile 改为 a.phone(与内层别名一致) + a.educationalStatus, + a.independentLivingSkills, + a.birthNumber, + a.dwellingState, + a.lastEvaluationTime, + a.lastTesterName, -- 修正之前的笔误(原 astTesterName) + a.evaluationCount, + a.createBy, + a.createTime, + a.hospitalName, + a.birthday, + a.career, + a.maritalStatus, + a.domicile, + a.nation, + a.nativePlace, + a.contactName, + a.contactRelation, + a.contactMobile, + a.address, + a.belief, + a.hobby, + a.aboBloodType, + a.rhBloodType + FROM + ( + SELECT DISTINCT + pp.id AS patientId, + pp.`name` AS patientName, pp.sex, pp.idcard, - pp.mobile as phone, - pp.birth_year as birthYear, + pp.mobile AS phone, -- 内层别名是 phone + pp.educational_status AS educationalStatus, + pp.independent_living_skills AS independentLivingSkills, + pp.birth_number AS birthNumber, + pp.dwelling_state AS dwellingState, + MAX(ee.create_time) AS lastEvaluationTime, + uu.nick_name AS lastTesterName, + COUNT(ee.id) AS evaluationCount, + (SELECT nick_name FROM ums_user WHERE user_name = pp.create_by AND del_flag = 0) AS createBy, + pp.create_time AS createTime, + ud.dept_name AS hospitalName, pp.birthday, + pp.career, + pp.marital_status AS maritalStatus, + pp.domicile, + pp.nation, + pp.native_place AS nativePlace, + pp.contact_name AS contactName, + pp.contact_relation AS contactRelation, + pp.contact_mobile AS contactMobile, + pp.address, pp.belief, pp.hobby, - pp.contact_name as contactName, - pp.contact_relation as contactRelation, - pp.contact_mobile as contactMobile, - pp.contact_other as contactOther, - pp.id_card_type as idCardType, - pp.id_card_type_other as idCardTypeOther, - pp.abo_blood_type as aboBloodType, - pp.rh_blood_type as rhBloodType, - MAX(ae.create_time) as lastEvaluationTime, - uu.nick_name as lastTesterName, - COUNT(ae.id) as evaluationCount, - (select nick_name from ums_user where user_name = pp.create_by and del_flag = 0) as creatorName, - pp.create_time as createTime + pp.abo_blood_type AS aboBloodType, + pp.rh_blood_type AS rhBloodType FROM pms_patient pp - LEFT JOIN ems_evaluation ae on pp.id = ae.patient_id - LEFT JOIN ums_user uu on pp.create_by = uu.user_name - left join pms_patient_body pb on pp.id = pb.patient_id + LEFT JOIN ems_evaluation ee ON pp.id = ee.patient_id AND ee.del_flag = 0 + LEFT JOIN ums_user uu ON ee.tester_id = uu.user_id + LEFT JOIN ums_dept ud ON pp.hospital_id = ud.dept_id WHERE pp.del_flag = 0 + + + and pp.hospital_id IN + + #{item} + + + and ( pp.name like CONCAT('%',#{searchValue},'%') @@ -68,42 +115,82 @@ pb.outpatient_no like CONCAT('%',#{searchValue},'%') ) - - and (pp.idcard = #{idcard} or pp.idcard = #{idcardEncrypt}) - - - and uu.dept_id IN ( SELECT d.dept_id FROM ums_user u LEFT JOIN ums_dept d on (d.dept_id = u.dept_id or FIND_IN_SET(u.dept_id,ancestors)) - WHERE user_id = #{userId} - ) - - - - - - - - - - - - - - - - - - - - - - - - - - - GROUP BY pp.id - order by pp.create_time desc + + and (pp.idcard = #{idcard} or pp.idcard = #{idcardEncrypt}) + + GROUP BY + pp.id + UNION ALL + SELECT DISTINCT + pp.id AS patientId, + pp.`name` AS patientName, + pp.sex, + pp.idcard, + pp.mobile AS phone, -- 内层别名统一为 phone + pp.educational_status AS educationalStatus, + pp.independent_living_skills AS independentLivingSkills, + pp.birth_number AS birthNumber, + pp.dwelling_state AS dwellingState, + MAX(ee.create_time) AS lastEvaluationTime, + uu.nick_name AS lastTesterName, + COUNT(ee.id) AS evaluationCount, + (SELECT nick_name FROM ums_user WHERE user_name = pp.create_by AND del_flag = 0) AS createBy, + pp.create_time AS createTime, + ud.dept_name AS hospitalName, + pp.birthday, + pp.career, + pp.marital_status AS maritalStatus, + pp.domicile, + pp.nation, + pp.native_place AS nativePlace, + pp.contact_name AS contactName, + pp.contact_relation AS contactRelation, + pp.contact_mobile AS contactMobile, + pp.address, + pp.belief, + pp.hobby, + pp.abo_blood_type AS aboBloodType, + pp.rh_blood_type AS rhBloodType + FROM + pms_patient pp + LEFT JOIN pms_patient_body pb ON pb.patient_id = pp.id AND pb.del_flag = 0 + LEFT JOIN ems_evaluation ee ON pp.id = ee.patient_id AND ee.del_flag = 0 + LEFT JOIN ums_user uu ON ee.tester_id = uu.user_id + LEFT JOIN ums_dept ud ON pp.hospital_id = ud.dept_id + WHERE + pp.del_flag = 0 + + and ( + pp.name like CONCAT('%',#{searchValue},'%') + or + pp.name_initial like CONCAT('%',LOWER(#{searchValue}),'%') + or + pp.name_full like CONCAT('%',LOWER(#{searchValue}),'%') + or + pp.idcard like CONCAT('%',#{searchValue},'%') + or + pb.outpatient_no like CONCAT('%',#{searchValue},'%') + ) + + + and (pp.idcard = #{idcard} or pp.idcard = #{idcardEncrypt}) + + + + and pp.hospital_id IN + + #{item} + + + + GROUP BY + pp.id + ) a + group by a.patientId + ORDER BY a.createTime DESC + +