diff --git a/xinelu-admin/src/main/java/com/xinelu/web/controller/fd/FDController.java b/xinelu-admin/src/main/java/com/xinelu/web/controller/fd/FDController.java index fd1466b..c9a23e4 100644 --- a/xinelu-admin/src/main/java/com/xinelu/web/controller/fd/FDController.java +++ b/xinelu-admin/src/main/java/com/xinelu/web/controller/fd/FDController.java @@ -3,7 +3,10 @@ package com.xinelu.web.controller.fd; import com.alibaba.fastjson2.JSONObject; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.xinelu.common.core.controller.BaseController; import com.xinelu.common.core.domain.R; +import com.xinelu.common.core.page.TableDataInfo; +import com.xinelu.common.exception.ServiceException; import com.xinelu.familydoctor.applet.pojo.body.ApprovalBody; import com.xinelu.familydoctor.applet.pojo.body.SyncHospitalPersonInfoBody; import com.xinelu.familydoctor.applet.pojo.query.ApplyQuery; @@ -13,8 +16,11 @@ import com.xinelu.familydoctor.applet.pojo.vo.ResidentSignApplyVo; import com.xinelu.familydoctor.applet.service.IResidentRescindApplyService; import com.xinelu.familydoctor.applet.service.IResidentServiceAppletService; import com.xinelu.familydoctor.applet.service.IResidentSignAppletService; +import com.xinelu.manage.domain.chatRecord.ChatRecord; import com.xinelu.manage.domain.hospitalinfo.HospitalInfo; import com.xinelu.manage.domain.hospitalpersoninfo.HospitalPersonInfo; +import com.xinelu.manage.dto.chatrecord.MessageSearchDto; +import com.xinelu.manage.mapper.chatrecord.ChatRecordMapper; import com.xinelu.manage.service.hospitalinfo.IHospitalInfoService; import com.xinelu.manage.service.hospitalpersoninfo.IHospitalPersonInfoService; import com.xinelu.manage.service.patientinfo.IPatientInfoService; @@ -30,7 +36,7 @@ import javax.annotation.Resource; @Api(tags = "家医调用接口") @RestController @RequestMapping("/applet/fd") -public class FDController { +public class FDController extends BaseController { @Resource private IResidentRescindApplyService residentRescindApplyService; @Resource @@ -43,6 +49,8 @@ public class FDController { private IHospitalPersonInfoService hospitalPersonInfoService; @Resource private IHospitalInfoService hospitalInfoService; + @Resource + private ChatRecordMapper chatRecordMapper; @ApiOperation("服务申请列表") @@ -191,4 +199,32 @@ public class FDController { } return R.ok(); } + + @ApiOperation(value = "获取居民消息推送列表", notes = "山东通APP消息通知模块中的消息提醒用") + @GetMapping("/getNotice/{identity}") + public TableDataInfo noticDel(@PathVariable String identity) { + // 获取注册信息 + PatientInfoVO patientInfo = patientInfoService.selectPatientInfoByCardNo(identity); + if (patientInfo == null) { + return null; + } + MessageSearchDto query = new MessageSearchDto(); + query.setRecipientId(patientInfo.getId()); + query.setMessageCategory("4"); + startPage(); + return getDataTable(chatRecordMapper.selectMegList(query)); + } + + @ApiOperation(value = "获取居民消息推送最后一次记录", notes = "山东通APP消息通知模块中的消息提醒用") + @GetMapping("/getLastNotice/{identity}") + public R getLastNotice(@PathVariable String identity) { + PatientInfoVO patientInfo = patientInfoService.selectPatientInfoByCardNo(identity); + if (patientInfo == null) { + return null; + } + MessageSearchDto query = new MessageSearchDto(); + query.setRecipientId(patientInfo.getId()); + query.setMessageCategory("4"); + return R.ok(chatRecordMapper.getLast(query)); + } } diff --git a/xinelu-nurse-applet/src/main/resources/mapper/applet/nursepersonapplogin/NursePersonAppLoginMapper.xml b/xinelu-nurse-applet/src/main/resources/mapper/applet/nursepersonapplogin/NursePersonAppLoginMapper.xml index 484e705..d75727e 100644 --- a/xinelu-nurse-applet/src/main/resources/mapper/applet/nursepersonapplogin/NursePersonAppLoginMapper.xml +++ b/xinelu-nurse-applet/src/main/resources/mapper/applet/nursepersonapplogin/NursePersonAppLoginMapper.xml @@ -398,21 +398,21 @@ nsp.create_by, nsp.create_time, nsp.update_by, - nsp.update_time, - nspc.id certificateId, - nspc.certificate_name, - nspc.certificate_url, - nspc.sort + nsp.update_time + -- nspc.id certificateId, + -- nspc.certificate_name, + -- nspc.certificate_url, + -- nspc.sort FROM nurse_station_person nsp LEFT JOIN sys_user su ON su.phonenumber = nsp.phone - LEFT JOIN nurse_station_person_certificate nspc ON nspc.nurse_station_person_id = nsp.id + -- LEFT JOIN nurse_station_person_certificate nspc ON nspc.nurse_station_person_id = nsp.id and nsp.id = #{nursePersonId} and su.del_flag = 0 - ORDER BY nspc.sort + -- ORDER BY nspc.sort diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/chatRecord/ChatRecord.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/chatRecord/ChatRecord.java index 742b347..f53bc16 100644 --- a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/chatRecord/ChatRecord.java +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/chatRecord/ChatRecord.java @@ -86,6 +86,14 @@ public class ChatRecord extends BaseEntity implements Serializable { @Excel(name = "发送时间,时间格式:yyyy-MM-dd HH:mm:ss", width = 30, dateFormat = "yyyy-MM-dd") private Date sendTime; + /** + * 发送时间,时间格式:yyyy-MM-dd HH:mm:ss + */ + @ApiModelProperty(value = "发送时间,时间格式:yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "发送时间,时间格式:yyyy-MM-dd HH:mm:ss", width = 30, dateFormat = "yyyy-MM-dd") + private Date sendTime1; + /** * 接收人 */ diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/chatrecord/ChatRecordMapper.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/chatrecord/ChatRecordMapper.java index c7664d3..1b1e19a 100644 --- a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/chatrecord/ChatRecordMapper.java +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/chatrecord/ChatRecordMapper.java @@ -118,4 +118,12 @@ public interface ChatRecordMapper { List getList(ChatRecord chatRecord); + /** + * @Author mengkuiliang + * @Description 查询最后一次通知记录 + * @Date 2023-12-06 006 14:53 + * @Param [query] + * @return com.xinelu.manage.domain.chatRecord.ChatRecord + **/ + ChatRecord getLast(MessageSearchDto query); } diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/hospitalpersoninfo/HospitalPersonInfoMapper.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/hospitalpersoninfo/HospitalPersonInfoMapper.java index 2cc5deb..5f446eb 100644 --- a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/hospitalpersoninfo/HospitalPersonInfoMapper.java +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/hospitalpersoninfo/HospitalPersonInfoMapper.java @@ -3,9 +3,10 @@ package com.xinelu.manage.mapper.hospitalpersoninfo; import com.xinelu.manage.domain.hospitalpersoninfo.HospitalPersonInfo; import com.xinelu.manage.dto.hospitalpersoninfo.HospitalPersonInfoDtoo; import com.xinelu.manage.vo.hospitalpersoninfo.HospitalPersonInfoVO; -import java.util.List; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 健康咨询-科室人员信息Mapper接口 @@ -30,13 +31,13 @@ public interface HospitalPersonInfoMapper { */ List selectHospitalPersonInfoList(HospitalPersonInfoVO hospitalPersonInfo); - /** - * 查询健康咨询-科室人员信息列表 - * - * @param hospitalPersonInfo 健康咨询-科室人员信息 - * @return 健康咨询-科室人员信息集合 - */ - List selectList(HospitalPersonInfo hospitalPersonInfo); + /** + * 查询健康咨询-科室人员信息列表 + * + * @param hospitalPersonInfo 健康咨询-科室人员信息 + * @return 健康咨询-科室人员信息集合 + */ + List selectList(HospitalPersonInfo hospitalPersonInfo); /** * 新增健康咨询-科室人员信息 @@ -111,20 +112,27 @@ public interface HospitalPersonInfoMapper { int selectHospitalPersonInfoByIdCount(Long id); /** + * @return com.xinelu.manage.domain.hospitalpersoninfo.HospitalPersonInfo * @Author mengkuiliang * @Description 根据科室人员编码查询人员信息 * @Date 2023-10-20 020 14:37 * @Param [personCode] - * @return com.xinelu.manage.domain.hospitalpersoninfo.HospitalPersonInfo **/ HospitalPersonInfo getByPersonCode(@Param("personCode") String personCode, @Param("status") String status); /** + * @return int * @Author mengkuiliang * @Description 根据科室人员编号更新 * @Date 2023-10-20 020 15:03 - * @Param [hospitalPersonInfo] - * @return int **/ int updateByPersonCode(HospitalPersonInfo hospitalPersonInfo); + + /** + * 根据手机号查询当前科室人员信息是否存在,用于判断手机号唯一 + * + * @param phone 手机号号码 + * @return 数量 + */ + int getPersonInfoByPhoneNumber(@Param("phoneNumber") String phone); } diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitalpersoninfo/impl/HospitalPersonInfoServiceImpl.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitalpersoninfo/impl/HospitalPersonInfoServiceImpl.java index 32acd82..c882abb 100644 --- a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitalpersoninfo/impl/HospitalPersonInfoServiceImpl.java +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/hospitalpersoninfo/impl/HospitalPersonInfoServiceImpl.java @@ -15,19 +15,10 @@ import com.xinelu.manage.dto.hospitalpersoninfo.HospitalPersonInfoDTO; import com.xinelu.manage.dto.hospitalpersoninfo.HospitalPersonInfoDtoo; import com.xinelu.manage.mapper.hospitalpersoncertificate.HospitalPersonCertificateMapper; import com.xinelu.manage.mapper.hospitalpersoninfo.HospitalPersonInfoMapper; +import com.xinelu.manage.mapper.nursestationperson.NurseStationPersonMapper; import com.xinelu.manage.service.hospitalpersoninfo.IHospitalPersonInfoService; import com.xinelu.manage.vo.hospitalpersoninfo.HospitalPersonInfoVO; import com.xinelu.system.mapper.SysUserMapper; -import java.io.File; -import java.math.BigDecimal; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; -import javax.annotation.Resource; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.compress.utils.Lists; import org.apache.commons.lang3.BooleanUtils; @@ -35,6 +26,13 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; +import java.io.File; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.*; +import java.util.stream.Collectors; + /** * 健康咨询-科室人员信息Service业务层处理 * @@ -53,6 +51,8 @@ public class HospitalPersonInfoServiceImpl implements IHospitalPersonInfoService private HospitalPersonCertificateMapper hospitalPersonCertificateMapper; @Resource private SysUserMapper userMapper; + @Resource + private NurseStationPersonMapper nurseStationPersonMapper; /** * 查询健康咨询-科室人员信息 @@ -97,6 +97,11 @@ public class HospitalPersonInfoServiceImpl implements IHospitalPersonInfoService if (BooleanUtils.isFalse(phone)) { return AjaxResult.error("您输入的联系电话" + hospitalPersonInfo.getPersonPhone() + "不正确,请重新输入!"); } + // 校验手机号是否重复 + int personPhoneCount = hospitalPersonInfoMapper.getPersonInfoByPhoneNumber(hospitalPersonInfo.getPersonPhone()); + if (personPhoneCount > 0) { + return AjaxResult.error("您输入的联系电话" + hospitalPersonInfo.getPersonPhone() + "重复!"); + } } //校验身份证号是否正确 if (Objects.nonNull(hospitalPersonInfo) && StringUtils.isNotBlank(hospitalPersonInfo.getCardNo())) { @@ -134,22 +139,25 @@ public class HospitalPersonInfoServiceImpl implements IHospitalPersonInfoService throw new ServiceException("新增科室人员资质证书信息失败,请联系管理员!"); } } - - // 判断用户名是否重复 - int count = userMapper.checkUserNameUnique(hospitalPersonInfo.getPersonAccount()); - if (count > 0) { - throw new ServiceException("已存在用户名为" + hospitalPersonInfo.getPersonAccount() +"的用户,请重新输入用户名"); - } - // 保存到sys_user表 - SysUser sysUser = new SysUser(); - sysUser.setUserName(hospitalPersonInfo.getPersonAccount()); - sysUser.setPassword(SecurityUtils.encryptPassword(hospitalPersonInfo.getPersonPassword())); - sysUser.setNickName(hospitalPersonInfo.getPersonName()); - sysUser.setHospitalPersonId(hospitalPersonInfo.getId()); - sysUser.setHospitalId(hospitalPersonInfo.getHospitalId()); - sysUser.setStatus("0"); - sysUser.setDelFlag("0"); - userMapper.insertUser(sysUser); + // 判断用户名是否重复 + int count = userMapper.checkUserNameUnique(hospitalPersonInfo.getPersonAccount()); + if (count > 0) { + throw new ServiceException("已存在用户名为" + hospitalPersonInfo.getPersonAccount() + "的用户,请重新输入用户名"); + } + //保存到sys_user表,判断当前用户表中手机号是否存在,不存在再保存,存在不保存 + int nurseStationUserCount = nurseStationPersonMapper.getNurseStationUserCount(StringUtils.isBlank(hospitalPersonInfo.getPersonPhone()) ? "" : hospitalPersonInfo.getPersonPhone()); + if (nurseStationUserCount <= 0) { + SysUser sysUser = new SysUser(); + sysUser.setUserName(hospitalPersonInfo.getPersonAccount()); + sysUser.setPassword(SecurityUtils.encryptPassword(hospitalPersonInfo.getPersonPassword())); + sysUser.setNickName(hospitalPersonInfo.getPersonName()); + sysUser.setHospitalPersonId(hospitalPersonInfo.getId()); + sysUser.setHospitalId(hospitalPersonInfo.getHospitalId()); + sysUser.setPhonenumber(StringUtils.isBlank(hospitalPersonInfo.getPersonPhone()) ? "" : hospitalPersonInfo.getPersonPhone()); + sysUser.setStatus("0"); + sysUser.setDelFlag("0"); + userMapper.insertUser(sysUser); + } return AjaxResult.success(); } @@ -171,9 +179,9 @@ public class HospitalPersonInfoServiceImpl implements IHospitalPersonInfoService if (Objects.nonNull(ajaxResult)) { return ajaxResult; } - if (StringUtils.equals("2", hospitalPersonInfo.getStatus()) && (Objects.isNull(hospitalPersonInfo.getConsultingFee()) || hospitalPersonInfo.getConsultingFee().compareTo(BigDecimal.ZERO) <= 0)) { - return AjaxResult.error("咨询费用不能为0或者负数,请重新输入"); - } + if (StringUtils.equals("2", hospitalPersonInfo.getStatus()) && (Objects.isNull(hospitalPersonInfo.getConsultingFee()) || hospitalPersonInfo.getConsultingFee().compareTo(BigDecimal.ZERO) <= 0)) { + return AjaxResult.error("咨询费用不能为0或者负数,请重新输入"); + } //修改人 修改时间 hospitalPersonInfo.setUpdateTime(LocalDateTime.now()); hospitalPersonInfo.setUpdateBy(SecurityUtils.getUsername()); @@ -183,33 +191,34 @@ public class HospitalPersonInfoServiceImpl implements IHospitalPersonInfoService sysUser.setHospitalPersonId(hospitalPersonInfo.getId()); List userList = userMapper.selectUserList(sysUser); if (CollectionUtils.isEmpty(userList)) { - // 判断用户名是否重复 - int count = userMapper.checkUserNameUnique(hospitalPersonInfo.getPersonAccount()); - if (count > 0) { - throw new ServiceException("已存在用户名为" + hospitalPersonInfo.getPersonAccount() +"的用户,请重新输入用户名"); - } + // 判断用户名是否重复 + int count = userMapper.checkUserNameUnique(hospitalPersonInfo.getPersonAccount()); + if (count > 0) { + throw new ServiceException("已存在用户名为" + hospitalPersonInfo.getPersonAccount() + "的用户,请重新输入用户名"); + } SysUser newUser = new SysUser(); newUser.setUserName(hospitalPersonInfo.getPersonAccount()); newUser.setPassword(SecurityUtils.encryptPassword(hospitalPersonInfo.getPersonPassword())); newUser.setNickName(hospitalPersonInfo.getPersonName()); newUser.setHospitalPersonId(hospitalPersonInfo.getId()); newUser.setHospitalId(hospitalPersonInfo.getHospitalId()); + newUser.setPhonenumber(StringUtils.isBlank(hospitalPersonInfo.getPersonPhone()) ? "" : hospitalPersonInfo.getPersonPhone()); newUser.setStatus("0"); newUser.setDelFlag("0"); userMapper.insertUser(newUser); } else { - // 修改用户信息 - SysUser updUser = userList.get(0); - sysUser.setHospitalPersonId(hospitalPersonInfo.getId()); + // 修改用户信息 + SysUser updUser = userList.get(0); + sysUser.setHospitalPersonId(hospitalPersonInfo.getId()); updUser.setPassword(SecurityUtils.encryptPassword(hospitalPersonInfo.getPersonPassword())); updUser.setNickName(hospitalPersonInfo.getPersonName()); updUser.setHospitalPersonId(hospitalPersonInfo.getId()); updUser.setHospitalId(hospitalPersonInfo.getHospitalId()); + updUser.setPhonenumber(StringUtils.isBlank(hospitalPersonInfo.getPersonPhone()) ? "" : hospitalPersonInfo.getPersonPhone()); updUser.setStatus("0"); updUser.setDelFlag("0"); userMapper.updateUser(updUser); } - //根据科室人员id去查询对应的资质证书 使用流来获取所有的证书路径 List hospitalPersonCertificateList = hospitalPersonCertificateMapper.selectHospitalPersonCertificateByIds(Collections.singletonList(hospitalPersonInfo.getId())); //数据库中的 @@ -292,16 +301,16 @@ public class HospitalPersonInfoServiceImpl implements IHospitalPersonInfoService if (CollectionUtils.isNotEmpty(hospitalPersonCertificateUrlList)) { hospitalPersonCertificateUrlList.forEach(this::deletePictureUrl); } - // 删除用户表信息 - List userId = new ArrayList<>(); - for (HospitalPersonInfo hospitalPersonInfo : hospitalPersonInfos) { - SysUser sysUser = new SysUser(); - sysUser.setHospitalPersonId(hospitalPersonInfo.getId()); - List userList = userMapper.selectUserList(sysUser); - List userIdList = userList.stream().map(SysUser::getUserId).collect(Collectors.toList()); - userId.addAll(userIdList); - } - userMapper.deleteUserByIds(userId.toArray(new Long[0])); + // 删除用户表信息 + List userId = new ArrayList<>(); + for (HospitalPersonInfo hospitalPersonInfo : hospitalPersonInfos) { + SysUser sysUser = new SysUser(); + sysUser.setHospitalPersonId(hospitalPersonInfo.getId()); + List userList = userMapper.selectUserList(sysUser); + List userIdList = userList.stream().map(SysUser::getUserId).collect(Collectors.toList()); + userId.addAll(userIdList); + } + userMapper.deleteUserByIds(userId.toArray(new Long[0])); return AjaxResult.success(); } diff --git a/xinelu-nurse-manage/src/main/resources/mapper/manage/chatrecord/ChatRecordMapper.xml b/xinelu-nurse-manage/src/main/resources/mapper/manage/chatrecord/ChatRecordMapper.xml index 9989c8b..1b0fc52 100644 --- a/xinelu-nurse-manage/src/main/resources/mapper/manage/chatrecord/ChatRecordMapper.xml +++ b/xinelu-nurse-manage/src/main/resources/mapper/manage/chatrecord/ChatRecordMapper.xml @@ -451,4 +451,17 @@ ORDER BY send_time desc + + + diff --git a/xinelu-nurse-manage/src/main/resources/mapper/manage/hospitalpersoninfo/HospitalPersonInfoMapper.xml b/xinelu-nurse-manage/src/main/resources/mapper/manage/hospitalpersoninfo/HospitalPersonInfoMapper.xml index 45b357d..8bbeb49 100644 --- a/xinelu-nurse-manage/src/main/resources/mapper/manage/hospitalpersoninfo/HospitalPersonInfoMapper.xml +++ b/xinelu-nurse-manage/src/main/resources/mapper/manage/hospitalpersoninfo/HospitalPersonInfoMapper.xml @@ -590,4 +590,8 @@ where person_code = #{personCode} + +