Merge branch 'master' of ssh://git.jizhiweb.cn:2222/clinic-v2/server

This commit is contained in:
佟明轩 2025-05-21 11:52:33 +08:00
commit 20e85cd3e9
4 changed files with 93 additions and 6 deletions

View File

@ -243,4 +243,9 @@ public class SocialRequest {
return om2208; return om2208;
} }
public JSONObject call5102(Map<String,Object> map) {
JSONObject jsonObject = httpUtil.callBackMsgId("5102", "data", map, 10000);
return jsonObject;
}
} }

View File

@ -60,4 +60,47 @@ public class ManagerUserService extends BaseService {
return managerUserMapper.selectList(queryWrapper); return managerUserMapper.selectList(queryWrapper);
} }
public ManagerUser addManager(ManagerUser user){
QueryWrapper<ManagerUser> 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<ManagerUser> 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;
}
} }

View File

@ -1,7 +1,9 @@
package com.syjiaer.clinic.server.service.organization; 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.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; 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.exception.MessageException;
import com.syjiaer.clinic.server.common.util.FileUtil; import com.syjiaer.clinic.server.common.util.FileUtil;
import com.syjiaer.clinic.server.common.vo.Page; 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.OrganizationMemberSectionMapper;
import com.syjiaer.clinic.server.mapper.organization.OrganizationSectionMapper; import com.syjiaer.clinic.server.mapper.organization.OrganizationSectionMapper;
import com.syjiaer.clinic.server.service.BaseService; import com.syjiaer.clinic.server.service.BaseService;
import com.syjiaer.clinic.server.service.common.ManagerUserService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.*;
import java.util.List;
/** /**
* 组织成员 * 组织成员
@ -40,7 +42,11 @@ public class OrganizationMemberService extends BaseService {
@Autowired @Autowired
private FileUtil fileUtil; private FileUtil fileUtil;
@Autowired @Autowired
private ManagerUserService managerUserService;
@Autowired
private ManagerUserMapper managerUserMapper; private ManagerUserMapper managerUserMapper;
@Autowired
private SocialRequest socialRequest;
/* /*
* 获取成员列表 * 获取成员列表
@ -88,6 +94,23 @@ public class OrganizationMemberService extends BaseService {
organizationMember.setCreateDatetime(LocalDateTime.now()); organizationMember.setCreateDatetime(LocalDateTime.now());
} }
//医生校验
if (organizationMember.getRole() == 1 && organizationMember.getSocialMemberCode() == null){
throw new MessageException("医生必须填写医保人员代码");
}
if (organizationMember.getRole() == 1){
List<Map> 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<Integer> sectionIds = dto.getSectionIds(); List<Integer> sectionIds = dto.getSectionIds();
@ -125,7 +148,11 @@ public class OrganizationMemberService extends BaseService {
ManagerUser user = dto.getUserInfo(); ManagerUser user = dto.getUserInfo();
user.setOrganizationMemberId(organizationMember.getId()); user.setOrganizationMemberId(organizationMember.getId());
user.setName(organizationMember.getName()); 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); queryWrapper.eq("del_flag", false);
if (dockerSearchQuery.getKeyword() != null && !dockerSearchQuery.getKeyword().isEmpty()){ if (dockerSearchQuery.getKeyword() != null && !dockerSearchQuery.getKeyword().isEmpty()){
queryWrapper.and(wrapper -> wrapper queryWrapper.and(wrapper -> wrapper
.like("name", dockerSearchQuery.getKeyword()) .or().like("name", dockerSearchQuery.getKeyword())
.like("section_names", dockerSearchQuery.getKeyword())); .or().like("section_names", dockerSearchQuery.getKeyword()));
} }
return organizationMemberMapper.selectList(queryWrapper); return organizationMemberMapper.selectList(queryWrapper);
@ -216,4 +243,16 @@ public class OrganizationMemberService extends BaseService {
return organizationMemberMapper.selectList(memberWrapper); return organizationMemberMapper.selectList(memberWrapper);
} }
/**
* 获取医执人员信息
*/
public List<Map> getMedicalProfessionals(Integer roleType){
Map<String,Object> map = new HashMap<>();
map.put("prac_psn_type",roleType);
JSONObject jsonObject = socialRequest.call5102(map);
List<Map> list = jsonObject.getJSONArray("feedetail").toJavaList(Map.class);
return list;
}
} }

View File

@ -44,7 +44,7 @@ public class PatientInfoService extends BaseService {
public PatientInfo save(PatientInfo patientInfo){ public PatientInfo save(PatientInfo patientInfo){
patientInfo.setCreateDatetime(LocalDateTime.now()); patientInfo.setCreateDatetime(LocalDateTime.now());
if (patientInfo.getBirthday() != null) { if (patientInfo.getBirthday() != null && patientInfo.getAge() == null) {
int currentYear = LocalDate.now().getYear(); int currentYear = LocalDate.now().getYear();
int birthYear = patientInfo.getBirthday().getYear(); int birthYear = patientInfo.getBirthday().getYear();
patientInfo.setAge(currentYear - birthYear); patientInfo.setAge(currentYear - birthYear);