diff --git a/src/main/java/com/syjiaer/clinic/server/common/api/request/SocialRequest.java b/src/main/java/com/syjiaer/clinic/server/common/api/request/SocialRequest.java index 7992a2b..d2507be 100644 --- a/src/main/java/com/syjiaer/clinic/server/common/api/request/SocialRequest.java +++ b/src/main/java/com/syjiaer/clinic/server/common/api/request/SocialRequest.java @@ -243,4 +243,9 @@ public class SocialRequest { return om2208; } + + public JSONObject call5102(Map map) { + JSONObject jsonObject = httpUtil.callBackMsgId("5102", "data", map, 10000); + return jsonObject; + } } diff --git a/src/main/java/com/syjiaer/clinic/server/service/common/ManagerUserService.java b/src/main/java/com/syjiaer/clinic/server/service/common/ManagerUserService.java index e51ab77..adee2a7 100644 --- a/src/main/java/com/syjiaer/clinic/server/service/common/ManagerUserService.java +++ b/src/main/java/com/syjiaer/clinic/server/service/common/ManagerUserService.java @@ -60,4 +60,47 @@ public class ManagerUserService extends BaseService { return managerUserMapper.selectList(queryWrapper); } + + public ManagerUser addManager(ManagerUser user){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("username", user.getUsername()); + queryWrapper.last("limit 1"); + if (user.getUsername() == null || user.getUsername().isEmpty()){ + throw new MessageException("用户名不能为空"); + } + if (user.getPassword() == null || user.getPassword().isEmpty()){ + throw new MessageException("密码不能为空"); + } + if(managerUserMapper.selectOne(queryWrapper) != null){ + throw new MessageException("用户名已存在"); + } + + + managerUserMapper.insert(user); + return user; + } + + public ManagerUser updateManager(ManagerUser user){ + ManagerUser dbUser = managerUserMapper.selectById(user.getId()); + if(dbUser == null){ + throw new MessageException("用户不存在"); + } + if (user.getUsername() == null || user.getUsername().isEmpty()){ + throw new MessageException("用户名不能为空"); + } + if (user.getPassword() == null || user.getPassword().isEmpty()){ + throw new MessageException("密码不能为空"); + } + if (!dbUser.getOrganizationMemberId().equals(user.getOrganizationMemberId())){ + throw new MessageException("当前账号已经绑定了其他成员"); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("username", user.getUsername()); + queryWrapper.last("limit 1"); + if(managerUserMapper.selectOne(queryWrapper) != null){ + throw new MessageException("用户名已存在"); + } + managerUserMapper.updateById(user); + return user; + } } diff --git a/src/main/java/com/syjiaer/clinic/server/service/organization/OrganizationMemberService.java b/src/main/java/com/syjiaer/clinic/server/service/organization/OrganizationMemberService.java index 9e23fa8..879cc8b 100644 --- a/src/main/java/com/syjiaer/clinic/server/service/organization/OrganizationMemberService.java +++ b/src/main/java/com/syjiaer/clinic/server/service/organization/OrganizationMemberService.java @@ -1,7 +1,9 @@ package com.syjiaer.clinic.server.service.organization; +import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.syjiaer.clinic.server.common.api.request.SocialRequest; import com.syjiaer.clinic.server.common.exception.MessageException; import com.syjiaer.clinic.server.common.util.FileUtil; import com.syjiaer.clinic.server.common.vo.Page; @@ -16,14 +18,14 @@ import com.syjiaer.clinic.server.mapper.organization.OrganizationMemberMapper; import com.syjiaer.clinic.server.mapper.organization.OrganizationMemberSectionMapper; import com.syjiaer.clinic.server.mapper.organization.OrganizationSectionMapper; import com.syjiaer.clinic.server.service.BaseService; +import com.syjiaer.clinic.server.service.common.ManagerUserService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; +import java.util.*; /** * 组织成员 @@ -40,7 +42,11 @@ public class OrganizationMemberService extends BaseService { @Autowired private FileUtil fileUtil; @Autowired + private ManagerUserService managerUserService; + @Autowired private ManagerUserMapper managerUserMapper; + @Autowired + private SocialRequest socialRequest; /* * 获取成员列表 @@ -88,6 +94,23 @@ public class OrganizationMemberService extends BaseService { organizationMember.setCreateDatetime(LocalDateTime.now()); } + //医生校验 + if (organizationMember.getRole() == 1 && organizationMember.getSocialMemberCode() == null){ + throw new MessageException("医生必须填写医保人员代码"); + } + if (organizationMember.getRole() == 1){ + List medicalProfessionals = getMedicalProfessionals(1); + Boolean isExist = false; + for (Map medicalProfessional : medicalProfessionals){ + if (medicalProfessional.get("prac_psn_code").equals(organizationMember.getSocialMemberCode())){ + isExist = true; + break; + } + } + if (!isExist){ + throw new MessageException("医保人员代码不存在"); + } + } //科室信息 List sectionIds = dto.getSectionIds(); @@ -125,7 +148,11 @@ public class OrganizationMemberService extends BaseService { ManagerUser user = dto.getUserInfo(); user.setOrganizationMemberId(organizationMember.getId()); user.setName(organizationMember.getName()); - managerUserMapper.insertOrUpdate(user); + if (user.getId() == null) { + managerUserService.addManager(user); + }else { + managerUserService.updateManager(user); + } } @@ -193,8 +220,8 @@ public class OrganizationMemberService extends BaseService { queryWrapper.eq("del_flag", false); if (dockerSearchQuery.getKeyword() != null && !dockerSearchQuery.getKeyword().isEmpty()){ queryWrapper.and(wrapper -> wrapper - .like("name", dockerSearchQuery.getKeyword()) - .like("section_names", dockerSearchQuery.getKeyword())); + .or().like("name", dockerSearchQuery.getKeyword()) + .or().like("section_names", dockerSearchQuery.getKeyword())); } return organizationMemberMapper.selectList(queryWrapper); @@ -216,4 +243,16 @@ public class OrganizationMemberService extends BaseService { return organizationMemberMapper.selectList(memberWrapper); } + + + /** + * 获取医执人员信息 + */ + public List getMedicalProfessionals(Integer roleType){ + Map map = new HashMap<>(); + map.put("prac_psn_type",roleType); + JSONObject jsonObject = socialRequest.call5102(map); + List list = jsonObject.getJSONArray("feedetail").toJavaList(Map.class); + return list; + } } diff --git a/src/main/java/com/syjiaer/clinic/server/service/patient/PatientInfoService.java b/src/main/java/com/syjiaer/clinic/server/service/patient/PatientInfoService.java index 145dd86..a28864c 100644 --- a/src/main/java/com/syjiaer/clinic/server/service/patient/PatientInfoService.java +++ b/src/main/java/com/syjiaer/clinic/server/service/patient/PatientInfoService.java @@ -44,7 +44,7 @@ public class PatientInfoService extends BaseService { public PatientInfo save(PatientInfo patientInfo){ patientInfo.setCreateDatetime(LocalDateTime.now()); - if (patientInfo.getBirthday() != null) { + if (patientInfo.getBirthday() != null && patientInfo.getAge() == null) { int currentYear = LocalDate.now().getYear(); int birthYear = patientInfo.getBirthday().getYear(); patientInfo.setAge(currentYear - birthYear);