diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceFacade.java index 270da23..9a41ccc 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceFacade.java @@ -14,6 +14,7 @@ import com.lyms.platform.permission.model.Users; import com.lyms.platform.permission.service.OrganizationService; import com.lyms.platform.permission.service.PatientServiceService; import com.lyms.platform.permission.service.UsersService; +import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -47,6 +48,7 @@ public class PatientServiceFacade { /** * 根据孕妇id查询服务记录 + * * @param pid * @param id * @return @@ -61,7 +63,7 @@ public class PatientServiceFacade { List patientServices = patientServiceService.queryPatientService(patientQuery); List patientSerResults = new ArrayList<>(); - for(PatientService ps : patientServices){ + for (PatientService ps : patientServices) { PatientSerResult patientSerResult = convertToResult(ps); patientSerResults.add(patientSerResult); } @@ -75,6 +77,7 @@ public class PatientServiceFacade { /** * 根据id查询一条服务开通记录 + * * @param id * @return */ @@ -91,14 +94,37 @@ public class PatientServiceFacade { /** * 新增服务开通记录 + * * @param ps * @param id * @return */ - public BaseResponse addPatientService(PatientService ps, Integer id){ + public BaseResponse addPatientService(PatientService ps, Integer id) { //根据用户id获取医院ID String hospitalId = autoMatchFacade.getHospitalId(id); - ps.setId(UUID.randomUUID().toString().replace("-","")); + + //先根据孕妇id和开通服务类型、开通医生进行查询,如果已经开通过则开通失败 + PatientServiceQuery patientQuery = new PatientServiceQuery(); + patientQuery.setHospitalId(hospitalId); + patientQuery.setParentid(ps.getParentid()); + patientQuery.setSerType(ps.getSerType()); + patientQuery.setSerDoct(ps.getSerDoct()); + + List patientServices = patientServiceService.queryPatientService(patientQuery); + if (CollectionUtils.isNotEmpty(patientServices)) { + BaseResponse baseResponse = new BaseResponse(); + baseResponse.setErrorcode(ErrorCodeConstants.DATA_EXIST); + String serType = PatientSerEnums.SerTypeEnums.getTitle(ps.getSerType()); + String serDoct = "产检医生"; + Users users = usersService.getUsers(Integer.parseInt(ps.getSerDoct())); + if (users != null) { + serDoct = users.getName(); + } + baseResponse.setErrormsg("该孕妇已开通"+serDoct+"医生的" + serType + "服务,请勿重复开通"); + return baseResponse; + } + + ps.setId(UUID.randomUUID().toString().replace("-", "")); ps.setHospitalId(hospitalId); ps.setCreateDate(new Date()); ps.setCreateUser(String.valueOf(id)); @@ -113,11 +139,12 @@ public class PatientServiceFacade { /** * 修改服务开通记录 + * * @param ps 服务对象 * @param id 用户id * @return */ - public BaseResponse updatePatientService(PatientService ps,Integer id){ + public BaseResponse updatePatientService(PatientService ps, Integer id) { //根据用户id获取医院ID ps.setUpdateDate(new Date()); ps.setUpdateUser(String.valueOf(id)); @@ -131,11 +158,12 @@ public class PatientServiceFacade { /** * 数据转换 + * * @param ps * @return */ - public PatientSerResult convertToResult(PatientService ps){ - if(ps==null){ + public PatientSerResult convertToResult(PatientService ps) { + if (ps == null) { return null; } PatientSerResult result = new PatientSerResult(); @@ -163,15 +191,16 @@ public class PatientServiceFacade { /** * 根据条件查询开通服务记录 - * @param serType 服务类型(1-高危精准指导、2-体重、3-血糖、4-血压、5-专家咨询) - * @param serDoct 服务医生 + * + * @param serType 服务类型(1-高危精准指导、2-体重、3-血糖、4-血压、5-专家咨询) + * @param serDoct 服务医生 * @param createStartDate 开通开始时间 - * @param createEndDate 开通结束时间 - * @param pageInfo 分页信息 - * @param serStatus 开通状态(1-开通、2-退订、3-过期、4-暂停) + * @param createEndDate 开通结束时间 + * @param pageInfo 分页信息 + * @param serStatus 开通状态(1-开通、2-退订、3-过期、4-暂停) * @return */ - public BaseListResponse getPatientService(Integer serType, String serDoct, Date createStartDate, Date createEndDate, Integer serStatus, BasePageQueryRequest pageInfo,Integer id) { + public BaseListResponse getPatientService(Integer serType, String serDoct, Date createStartDate, Date createEndDate, Integer serStatus, BasePageQueryRequest pageInfo, Integer id) { //根据用户id获取医院ID String hospitalId = autoMatchFacade.getHospitalId(id); PatientServiceQuery patientQuery = new PatientServiceQuery(); @@ -183,13 +212,13 @@ public class PatientServiceFacade { patientQuery.setSerStatus(serStatus); patientQuery.setSort("create_date"); patientQuery.setNeed("y"); - patientQuery.setOffset((pageInfo.getPage()-1)*pageInfo.getLimit()); + patientQuery.setOffset((pageInfo.getPage() - 1) * pageInfo.getLimit()); patientQuery.setLimit(pageInfo.getLimit()); patientQuery.setPage(pageInfo.getPage()); List patientServices = patientServiceService.queryPatientService(patientQuery); List patientSerResults = new ArrayList<>(); - for(PatientService ps : patientServices){ + for (PatientService ps : patientServices) { PatientSerResult patientSerResult = convertToResult(ps); patientSerResults.add(patientSerResult); }