diff --git a/src/main/java/com/syjiaer/clinic/server/controller/patient/RegistrationController.java b/src/main/java/com/syjiaer/clinic/server/controller/patient/RegistrationController.java index dc02b00..80e591f 100644 --- a/src/main/java/com/syjiaer/clinic/server/controller/patient/RegistrationController.java +++ b/src/main/java/com/syjiaer/clinic/server/controller/patient/RegistrationController.java @@ -6,6 +6,7 @@ import com.syjiaer.clinic.server.common.vo.Result; import com.syjiaer.clinic.server.controller.BaseController; import com.syjiaer.clinic.server.entity.patient.PatientRegistration; import com.syjiaer.clinic.server.entity.patient.dto.RegistrationQuery; +import com.syjiaer.clinic.server.entity.patient.dto.RegistrationSaveDto; import com.syjiaer.clinic.server.entity.patient.vo.PatientAndRegistrationInfoVo; import com.syjiaer.clinic.server.service.patient.PatientInfoService; import com.syjiaer.clinic.server.service.patient.PatientRegistrationService; @@ -30,7 +31,7 @@ public class RegistrationController extends BaseController { @RequestMapping("/add") public Result> registration() { - PatientRegistration registrationParam = parmsUtil.getObjectWithCheck("data", PatientRegistration.class); + RegistrationSaveDto registrationParam = parmsUtil.getObjectWithCheck("data", RegistrationSaveDto.class); String mdtrtCertNo = parmsUtil.getString("mdtrtCertNo"); String mdtrtCertType = parmsUtil.getString("mdtrtCertType"); patientRegistrationService.registration(registrationParam,mdtrtCertType,mdtrtCertNo); diff --git a/src/main/java/com/syjiaer/clinic/server/entity/patient/PatientInfo.java b/src/main/java/com/syjiaer/clinic/server/entity/patient/PatientInfo.java index 2975c01..9e0edbb 100644 --- a/src/main/java/com/syjiaer/clinic/server/entity/patient/PatientInfo.java +++ b/src/main/java/com/syjiaer/clinic/server/entity/patient/PatientInfo.java @@ -5,20 +5,21 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; import lombok.Getter; import lombok.Setter; import lombok.ToString; import lombok.experimental.Accessors; - -import java.io.Serializable; - /** *
* 患者信息 *
* * @author NiuZiYuan - * @since 2025-04-17 + * @since 2025-04-29 */ @Getter @Setter @@ -40,12 +41,51 @@ public class PatientInfo implements Serializable { @ApiModelProperty("手机号") private String phone; - @ApiModelProperty("身份证号") - private String certno; + @ApiModelProperty("证件号码") + private String certNo; @ApiModelProperty("性别") private String sex; @ApiModelProperty("年龄") private Integer age; + + @ApiModelProperty("证件类型") + private String certType; + + @ApiModelProperty("来源") + private String source; + + @ApiModelProperty("民族") + private String nation; + + @ApiModelProperty("地区") + private String area; + + @ApiModelProperty("地址") + private String address; + + @ApiModelProperty("备注") + private String remark; + + @ApiModelProperty("创建日期") + private LocalDateTime createDatetime; + + @ApiModelProperty("会员等级") + private Integer levelId; + + @ApiModelProperty("经验值") + private Integer exp; + + @ApiModelProperty("积分余额") + private Integer integralBalance; + + @ApiModelProperty("0没绑医保 1已绑定") + private Integer isBindSocial; + + @ApiModelProperty("余额") + private BigDecimal balance; + + @ApiModelProperty("生日") + private LocalDate brithday; } diff --git a/src/main/java/com/syjiaer/clinic/server/entity/patient/PatientRegistration.java b/src/main/java/com/syjiaer/clinic/server/entity/patient/PatientRegistration.java index f9a3bbc..43550a9 100644 --- a/src/main/java/com/syjiaer/clinic/server/entity/patient/PatientRegistration.java +++ b/src/main/java/com/syjiaer/clinic/server/entity/patient/PatientRegistration.java @@ -18,7 +18,7 @@ import lombok.experimental.Accessors; * * * @author NiuZiYuan - * @since 2025-04-23 + * @since 2025-04-29 */ @Getter @Setter diff --git a/src/main/java/com/syjiaer/clinic/server/entity/patient/dto/RegistrationSaveDto.java b/src/main/java/com/syjiaer/clinic/server/entity/patient/dto/RegistrationSaveDto.java new file mode 100644 index 0000000..308af7a --- /dev/null +++ b/src/main/java/com/syjiaer/clinic/server/entity/patient/dto/RegistrationSaveDto.java @@ -0,0 +1,79 @@ +package com.syjiaer.clinic.server.entity.patient.dto; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +@Data +public class RegistrationSaveDto { + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("科室id") + private Integer organizationSectionId; + + @ApiModelProperty("医生id") + private Integer organizationDoctorId; + + @ApiModelProperty("患者姓名") + private String name; + + @ApiModelProperty("患者年龄") + private Integer age; + + @ApiModelProperty("患者手机号") + private String phone; + + @ApiModelProperty("就诊类型") + private Short visitType; + + @ApiModelProperty("挂号时间") + private LocalDateTime createDatetime; + + @ApiModelProperty("推荐") + private String recommendations; + + @ApiModelProperty("备注") + private String memo; + + @ApiModelProperty("预诊") + private String advanceDiagnosis; + + @ApiModelProperty("挂号费") + private BigDecimal registrationMoney; + + @ApiModelProperty("逻辑删除") + private Integer delFlag; + + @ApiModelProperty("挂号类型") + private Integer type; + + @ApiModelProperty("性别") + private String gender; + + @ApiModelProperty("病人id") + private Integer patientInfoId; + + @ApiModelProperty("挂号状态 1候诊 2在诊 3已诊 0取消") + private Integer status; + + @ApiModelProperty("人员编号") + private String psnNo; + + @ApiModelProperty("险种类型") + private String insutype; + + @ApiModelProperty("就诊id 挂号后医保返会") + private String mdtrtId; + + @ApiModelProperty("流水号") + private String fstNo; + + @ApiModelProperty("证件号码") + private String certNo; + @ApiModelProperty("证件类型") + private String certType; +} 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 d6a0dbb..acf393f 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 @@ -1,26 +1,147 @@ package com.syjiaer.clinic.server.service.patient; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.syjiaer.clinic.server.common.exception.MessageException; import com.syjiaer.clinic.server.entity.patient.PatientInfo; +import com.syjiaer.clinic.server.entity.vip.Vip; +import com.syjiaer.clinic.server.entity.vip.VipExpLog; +import com.syjiaer.clinic.server.entity.vip.VipIntegralLog; +import com.syjiaer.clinic.server.entity.vip.VipLevelConfig; import com.syjiaer.clinic.server.mapper.patient.PatientInfoMapper; +import com.syjiaer.clinic.server.mapper.vip.VipExpLogMapper; +import com.syjiaer.clinic.server.mapper.vip.VipIntegralLogMapper; +import com.syjiaer.clinic.server.mapper.vip.VipLevelConfigMapper; import com.syjiaer.clinic.server.service.BaseService; +import com.syjiaer.clinic.server.service.vip.VipLevelConfigService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; + @Service public class PatientInfoService extends BaseService { @Autowired private PatientInfoMapper patientInfoMapper; + @Autowired + private VipLevelConfigMapper vipLevelConfigMapper; + @Autowired + private VipLevelConfigService vipLevelConfigService; + @Autowired + private VipExpLogMapper vipExpLogMapper; + @Autowired + private VipIntegralLogMapper vipIntegralLogMapper; public void save(PatientInfo patientInfo){ + patientInfo.setCreateDatetime(LocalDateTime.now()); + if (patientInfo.getBrithday() != null) { + int currentYear = LocalDate.now().getYear(); + int birthYear = patientInfo.getBrithday().getYear(); + patientInfo.setAge(currentYear - birthYear); + } + VipLevelConfig level = vipLevelConfigService.getByExp(patientInfo.getExp()); + if (level != null){ + patientInfo.setLevelId(level.getLevelId()); + }else { + patientInfo.setLevelId(0); + } + QueryWrapper