|
@@ -218,7 +218,6 @@ public class CustomerServiceImpl extends SystemCRUDManagerImpl<CustomerDO> imple
|
|
|
MemberDO member = null;
|
|
|
List<CustomerCareMappingVO> customerCareMappingVOS = new ArrayList<>();
|
|
|
if (customerDO != null) {
|
|
|
-
|
|
|
member = patientMemberWasIn.stream().filter(p -> p.getMemberId().equals(customerDO.getMemberId())).findFirst().orElse(null);
|
|
|
customerCareMappingVOS = patientWasInCareMapping.stream().filter(p -> p.getCustomerId().equals(customerDO.getId())).collect(Collectors.toList());
|
|
|
//患者已经在库中,需要判定此患者是否住院状态,如果是住院状态,要处理患者是否转床、转科室
|
|
@@ -239,9 +238,9 @@ public class CustomerServiceImpl extends SystemCRUDManagerImpl<CustomerDO> imple
|
|
|
}
|
|
|
|
|
|
CustomerDO customer = handleSinglePatient(patientInfo, part, bed, customerDO, member, roles, customerCareMappingVOS, patientWasIn);
|
|
|
- if (customer != null&&customer.getStatus().equals(HospitaliseStatusEnum.HOSPITALIZED.value())) {
|
|
|
+ if (customer != null) { //只要同步成功就需要加入同步列表,给设备发送刷新消息,有可能患者状态已经改成了出院
|
|
|
//重要-- 把同步成功的患者加入到已入住列表中,防止同一批次患者有相同床位的,不加入无法判断出上一次已经入住了床位
|
|
|
- if(patientWasIn.stream().noneMatch(p->p.getId().equals(customer.getId()))) {
|
|
|
+ if(customer.getStatus().equals(HospitaliseStatusEnum.HOSPITALIZED.value())&&patientWasIn.stream().noneMatch(p->p.getId().equals(customer.getId()))) {
|
|
|
patientWasIn.add(customer);
|
|
|
}
|
|
|
//把同步成功的患者加入返回列表
|
|
@@ -278,6 +277,12 @@ public class CustomerServiceImpl extends SystemCRUDManagerImpl<CustomerDO> imple
|
|
|
if (customer == null) {
|
|
|
|
|
|
if (member == null) {
|
|
|
+ if(StrUtil.isNotEmpty(patient.getMobile())) {
|
|
|
+ MemberDO existMember = this.memberService.getMemberByMobile(patient.getMobile());
|
|
|
+ if(existMember!=null){
|
|
|
+ patient.setMobile(null);
|
|
|
+ }
|
|
|
+ }
|
|
|
member = registerMemberDO(patient);
|
|
|
} else {
|
|
|
updateMember(patient, member);
|
|
@@ -297,6 +302,12 @@ public class CustomerServiceImpl extends SystemCRUDManagerImpl<CustomerDO> imple
|
|
|
if (member == null) { //防止customer 关联不对,或者删除了member记录
|
|
|
member = this.memberService.getMemberByMobile(patient.getKeyval());
|
|
|
if (member == null) {
|
|
|
+ if(StrUtil.isNotEmpty(patient.getMobile())) {
|
|
|
+ MemberDO existMember = this.memberService.getMemberByMobile(patient.getMobile());
|
|
|
+ if(existMember!=null){
|
|
|
+ patient.setMobile(null);
|
|
|
+ }
|
|
|
+ }
|
|
|
member = registerMemberDO(patient);
|
|
|
customer.setMemberId(member.getMemberId());
|
|
|
this.edit(customer, customer.getId());
|
|
@@ -535,6 +546,9 @@ public class CustomerServiceImpl extends SystemCRUDManagerImpl<CustomerDO> imple
|
|
|
|
|
|
private void updateCustomer(PatientDO patient, ShopDO shop, FrameDO bed, CustomerDO customerDO) {
|
|
|
String age = patient.getAge();
|
|
|
+ if(StrUtil.isEmpty(age)&&StrUtil.isNotEmpty(patient.getBirthday())){
|
|
|
+ age = cn.hutool.core.date.DateUtil.ageOfNow(patient.getBirthday())+"岁";
|
|
|
+ }
|
|
|
Integer patientAge = StringHelper.fetchAge(age);
|
|
|
customerDO.setAge(patientAge);
|
|
|
if (StrUtil.isEmpty(patient.getAgeUnit())) { //没有传入年龄单位,尝试从年龄中获取
|