diff --git a/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/controller/PmsController.java b/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/controller/PmsController.java index 918393c..3d96052 100644 --- a/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/controller/PmsController.java +++ b/ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/controller/PmsController.java @@ -67,15 +67,6 @@ public class PmsController extends BaseController { @PostMapping("/queryList") public JsonResponse> queryPatientList(@RequestBody @Validated BaseDto dto) { - - -// startPageOvertop(dto); -// List serverList = patientService.queryPatientList(dto.getParam(), dataScope, loginUser.getUserId(), loginUser.getUsername()); - -// return JsonResponse.ok(new PageInfo<>(serverList)); - - - //获取用户的权限 LoginUser loginUser = SecurityUtils.getLoginUser(); List deptIdList = new ArrayList<>(); diff --git a/ruisi_java/ruisi-web-client/src/main/resources/mapper/dao/PmsPatientDao.xml b/ruisi_java/ruisi-web-client/src/main/resources/mapper/dao/PmsPatientDao.xml index f332e63..95d5528 100644 --- a/ruisi_java/ruisi-web-client/src/main/resources/mapper/dao/PmsPatientDao.xml +++ b/ruisi_java/ruisi-web-client/src/main/resources/mapper/dao/PmsPatientDao.xml @@ -77,6 +77,78 @@ ) GROUP BY pp.id order by pp.create_time desc + + + + + + SELECT + pp.id as patientId, + pp.`name` as patientName, + pp.sex, + pp.idcard, + pp.mobile as phone, + pp.birth_year as birthYear, + pp.birthday, + 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(DISTINCT 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 + FROM + pms_patient pp + LEFT JOIN ems_evaluation ae on pp.id = ae.patient_id + left join pms_patient_body pb on pp.id = pb.patient_id + left join ums_dept ud on pb.department = ud.dept_name + 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 + pp.id = #{searchValue} + or + pb.outpatient_no like CONCAT('%',#{searchValue},'%') + ) + + + and (pp.idcard = #{idcard} or pp.idcard = #{idcardEncrypt}) + + + AND ( + EXISTS ( + SELECT 1 FROM ums_user WHERE user_id = #{userId} AND data_power = 'ALL' + ) + OR + ( + FIND_IN_SET(ud.dept_code, + (SELECT + CONCAT( d.dept_code, ',', u.data_power ) + FROM + ums_user u LEFT JOIN ums_dept d on u.dept_id = d.dept_id and d.del_flag = 0 + WHERE + u.user_id = #{userId}) + ) + ) + + GROUP BY pp.id + order by pp.create_time desc