Merge remote-tracking branch 'origin/jh_20231124_河口项目功能分支' into jh_20231124_河口项目功能分支

This commit is contained in:
HaoWang 2023-12-19 11:26:34 +08:00
commit 86bfdf6e9c
9 changed files with 164 additions and 69 deletions

View File

@ -3,7 +3,10 @@ package com.xinelu.web.controller.fd;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.xinelu.common.core.controller.BaseController;
import com.xinelu.common.core.domain.R; 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.ApprovalBody;
import com.xinelu.familydoctor.applet.pojo.body.SyncHospitalPersonInfoBody; import com.xinelu.familydoctor.applet.pojo.body.SyncHospitalPersonInfoBody;
import com.xinelu.familydoctor.applet.pojo.query.ApplyQuery; 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.IResidentRescindApplyService;
import com.xinelu.familydoctor.applet.service.IResidentServiceAppletService; import com.xinelu.familydoctor.applet.service.IResidentServiceAppletService;
import com.xinelu.familydoctor.applet.service.IResidentSignAppletService; 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.hospitalinfo.HospitalInfo;
import com.xinelu.manage.domain.hospitalpersoninfo.HospitalPersonInfo; 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.hospitalinfo.IHospitalInfoService;
import com.xinelu.manage.service.hospitalpersoninfo.IHospitalPersonInfoService; import com.xinelu.manage.service.hospitalpersoninfo.IHospitalPersonInfoService;
import com.xinelu.manage.service.patientinfo.IPatientInfoService; import com.xinelu.manage.service.patientinfo.IPatientInfoService;
@ -30,7 +36,7 @@ import javax.annotation.Resource;
@Api(tags = "家医调用接口") @Api(tags = "家医调用接口")
@RestController @RestController
@RequestMapping("/applet/fd") @RequestMapping("/applet/fd")
public class FDController { public class FDController extends BaseController {
@Resource @Resource
private IResidentRescindApplyService residentRescindApplyService; private IResidentRescindApplyService residentRescindApplyService;
@Resource @Resource
@ -43,6 +49,8 @@ public class FDController {
private IHospitalPersonInfoService hospitalPersonInfoService; private IHospitalPersonInfoService hospitalPersonInfoService;
@Resource @Resource
private IHospitalInfoService hospitalInfoService; private IHospitalInfoService hospitalInfoService;
@Resource
private ChatRecordMapper chatRecordMapper;
@ApiOperation("服务申请列表") @ApiOperation("服务申请列表")
@ -191,4 +199,32 @@ public class FDController {
} }
return R.ok(); 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<ChatRecord> 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));
}
} }

View File

@ -398,21 +398,21 @@
nsp.create_by, nsp.create_by,
nsp.create_time, nsp.create_time,
nsp.update_by, nsp.update_by,
nsp.update_time, nsp.update_time
nspc.id certificateId, -- nspc.id certificateId,
nspc.certificate_name, -- nspc.certificate_name,
nspc.certificate_url, -- nspc.certificate_url,
nspc.sort -- nspc.sort
FROM FROM
nurse_station_person nsp nurse_station_person nsp
LEFT JOIN sys_user su ON su.phonenumber = nsp.phone 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
<where> <where>
<if test="nursePersonId != null and nursePersonId != ''"> <if test="nursePersonId != null and nursePersonId != ''">
and nsp.id = #{nursePersonId} and nsp.id = #{nursePersonId}
</if> </if>
and su.del_flag = 0 and su.del_flag = 0
</where> </where>
ORDER BY nspc.sort -- ORDER BY nspc.sort
</select> </select>
</mapper> </mapper>

View File

@ -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") @Excel(name = "发送时间时间格式yyyy-MM-dd HH:mm:ss", width = 30, dateFormat = "yyyy-MM-dd")
private Date sendTime; 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;
/** /**
* 接收人 * 接收人
*/ */

View File

@ -118,4 +118,12 @@ public interface ChatRecordMapper {
List<ChatRecord> getList(ChatRecord chatRecord); List<ChatRecord> 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);
} }

View File

@ -3,9 +3,10 @@ package com.xinelu.manage.mapper.hospitalpersoninfo;
import com.xinelu.manage.domain.hospitalpersoninfo.HospitalPersonInfo; import com.xinelu.manage.domain.hospitalpersoninfo.HospitalPersonInfo;
import com.xinelu.manage.dto.hospitalpersoninfo.HospitalPersonInfoDtoo; import com.xinelu.manage.dto.hospitalpersoninfo.HospitalPersonInfoDtoo;
import com.xinelu.manage.vo.hospitalpersoninfo.HospitalPersonInfoVO; import com.xinelu.manage.vo.hospitalpersoninfo.HospitalPersonInfoVO;
import java.util.List;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* 健康咨询-科室人员信息Mapper接口 * 健康咨询-科室人员信息Mapper接口
@ -111,20 +112,27 @@ public interface HospitalPersonInfoMapper {
int selectHospitalPersonInfoByIdCount(Long id); int selectHospitalPersonInfoByIdCount(Long id);
/** /**
* @return com.xinelu.manage.domain.hospitalpersoninfo.HospitalPersonInfo
* @Author mengkuiliang * @Author mengkuiliang
* @Description 根据科室人员编码查询人员信息 * @Description 根据科室人员编码查询人员信息
* @Date 2023-10-20 020 14:37 * @Date 2023-10-20 020 14:37
* @Param [personCode] * @Param [personCode]
* @return com.xinelu.manage.domain.hospitalpersoninfo.HospitalPersonInfo
**/ **/
HospitalPersonInfo getByPersonCode(@Param("personCode") String personCode, @Param("status") String status); HospitalPersonInfo getByPersonCode(@Param("personCode") String personCode, @Param("status") String status);
/** /**
* @return int
* @Author mengkuiliang * @Author mengkuiliang
* @Description 根据科室人员编号更新 * @Description 根据科室人员编号更新
* @Date 2023-10-20 020 15:03 * @Date 2023-10-20 020 15:03
* @Param [hospitalPersonInfo]
* @return int
**/ **/
int updateByPersonCode(HospitalPersonInfo hospitalPersonInfo); int updateByPersonCode(HospitalPersonInfo hospitalPersonInfo);
/**
* 根据手机号查询当前科室人员信息是否存在用于判断手机号唯一
*
* @param phone 手机号号码
* @return 数量
*/
int getPersonInfoByPhoneNumber(@Param("phoneNumber") String phone);
} }

View File

@ -15,19 +15,10 @@ import com.xinelu.manage.dto.hospitalpersoninfo.HospitalPersonInfoDTO;
import com.xinelu.manage.dto.hospitalpersoninfo.HospitalPersonInfoDtoo; import com.xinelu.manage.dto.hospitalpersoninfo.HospitalPersonInfoDtoo;
import com.xinelu.manage.mapper.hospitalpersoncertificate.HospitalPersonCertificateMapper; import com.xinelu.manage.mapper.hospitalpersoncertificate.HospitalPersonCertificateMapper;
import com.xinelu.manage.mapper.hospitalpersoninfo.HospitalPersonInfoMapper; 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.service.hospitalpersoninfo.IHospitalPersonInfoService;
import com.xinelu.manage.vo.hospitalpersoninfo.HospitalPersonInfoVO; import com.xinelu.manage.vo.hospitalpersoninfo.HospitalPersonInfoVO;
import com.xinelu.system.mapper.SysUserMapper; 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.collections4.CollectionUtils;
import org.apache.commons.compress.utils.Lists; import org.apache.commons.compress.utils.Lists;
import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.BooleanUtils;
@ -35,6 +26,13 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; 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业务层处理 * 健康咨询-科室人员信息Service业务层处理
* *
@ -53,6 +51,8 @@ public class HospitalPersonInfoServiceImpl implements IHospitalPersonInfoService
private HospitalPersonCertificateMapper hospitalPersonCertificateMapper; private HospitalPersonCertificateMapper hospitalPersonCertificateMapper;
@Resource @Resource
private SysUserMapper userMapper; private SysUserMapper userMapper;
@Resource
private NurseStationPersonMapper nurseStationPersonMapper;
/** /**
* 查询健康咨询-科室人员信息 * 查询健康咨询-科室人员信息
@ -97,6 +97,11 @@ public class HospitalPersonInfoServiceImpl implements IHospitalPersonInfoService
if (BooleanUtils.isFalse(phone)) { if (BooleanUtils.isFalse(phone)) {
return AjaxResult.error("您输入的联系电话" + hospitalPersonInfo.getPersonPhone() + "不正确,请重新输入!"); 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())) { if (Objects.nonNull(hospitalPersonInfo) && StringUtils.isNotBlank(hospitalPersonInfo.getCardNo())) {
@ -134,22 +139,25 @@ public class HospitalPersonInfoServiceImpl implements IHospitalPersonInfoService
throw new ServiceException("新增科室人员资质证书信息失败,请联系管理员!"); throw new ServiceException("新增科室人员资质证书信息失败,请联系管理员!");
} }
} }
// 判断用户名是否重复 // 判断用户名是否重复
int count = userMapper.checkUserNameUnique(hospitalPersonInfo.getPersonAccount()); int count = userMapper.checkUserNameUnique(hospitalPersonInfo.getPersonAccount());
if (count > 0) { if (count > 0) {
throw new ServiceException("已存在用户名为" + hospitalPersonInfo.getPersonAccount() + "的用户,请重新输入用户名"); throw new ServiceException("已存在用户名为" + hospitalPersonInfo.getPersonAccount() + "的用户,请重新输入用户名");
} }
// 保存到sys_user表 //保存到sys_user表判断当前用户表中手机号是否存在不存在再保存存在不保存
int nurseStationUserCount = nurseStationPersonMapper.getNurseStationUserCount(StringUtils.isBlank(hospitalPersonInfo.getPersonPhone()) ? "" : hospitalPersonInfo.getPersonPhone());
if (nurseStationUserCount <= 0) {
SysUser sysUser = new SysUser(); SysUser sysUser = new SysUser();
sysUser.setUserName(hospitalPersonInfo.getPersonAccount()); sysUser.setUserName(hospitalPersonInfo.getPersonAccount());
sysUser.setPassword(SecurityUtils.encryptPassword(hospitalPersonInfo.getPersonPassword())); sysUser.setPassword(SecurityUtils.encryptPassword(hospitalPersonInfo.getPersonPassword()));
sysUser.setNickName(hospitalPersonInfo.getPersonName()); sysUser.setNickName(hospitalPersonInfo.getPersonName());
sysUser.setHospitalPersonId(hospitalPersonInfo.getId()); sysUser.setHospitalPersonId(hospitalPersonInfo.getId());
sysUser.setHospitalId(hospitalPersonInfo.getHospitalId()); sysUser.setHospitalId(hospitalPersonInfo.getHospitalId());
sysUser.setPhonenumber(StringUtils.isBlank(hospitalPersonInfo.getPersonPhone()) ? "" : hospitalPersonInfo.getPersonPhone());
sysUser.setStatus("0"); sysUser.setStatus("0");
sysUser.setDelFlag("0"); sysUser.setDelFlag("0");
userMapper.insertUser(sysUser); userMapper.insertUser(sysUser);
}
return AjaxResult.success(); return AjaxResult.success();
} }
@ -188,28 +196,39 @@ public class HospitalPersonInfoServiceImpl implements IHospitalPersonInfoService
if (count > 0) { if (count > 0) {
throw new ServiceException("已存在用户名为" + hospitalPersonInfo.getPersonAccount() + "的用户,请重新输入用户名"); throw new ServiceException("已存在用户名为" + hospitalPersonInfo.getPersonAccount() + "的用户,请重新输入用户名");
} }
int nurseStationUserCount = nurseStationPersonMapper.getNurseStationUserCount(StringUtils.isBlank(hospitalPersonInfo.getPersonPhone()) ? "" : hospitalPersonInfo.getPersonPhone());
if (nurseStationUserCount > 0) {
throw new ServiceException("您输入的联系电话" + hospitalPersonInfo.getPersonPhone() + "重复!");
}
SysUser newUser = new SysUser(); SysUser newUser = new SysUser();
newUser.setUserName(hospitalPersonInfo.getPersonAccount()); newUser.setUserName(hospitalPersonInfo.getPersonAccount());
newUser.setPassword(SecurityUtils.encryptPassword(hospitalPersonInfo.getPersonPassword())); newUser.setPassword(SecurityUtils.encryptPassword(hospitalPersonInfo.getPersonPassword()));
newUser.setNickName(hospitalPersonInfo.getPersonName()); newUser.setNickName(hospitalPersonInfo.getPersonName());
newUser.setHospitalPersonId(hospitalPersonInfo.getId()); newUser.setHospitalPersonId(hospitalPersonInfo.getId());
newUser.setHospitalId(hospitalPersonInfo.getHospitalId()); newUser.setHospitalId(hospitalPersonInfo.getHospitalId());
newUser.setPhonenumber(StringUtils.isBlank(hospitalPersonInfo.getPersonPhone()) ? "" : hospitalPersonInfo.getPersonPhone());
newUser.setStatus("0"); newUser.setStatus("0");
newUser.setDelFlag("0"); newUser.setDelFlag("0");
userMapper.insertUser(newUser); userMapper.insertUser(newUser);
} else { } else {
// 修改用户信息 // 修改用户信息
SysUser updUser = userList.get(0); SysUser updUser = userList.get(0);
if (!hospitalPersonInfo.getPersonPhone().equals(updUser.getPhonenumber())){
int nurseStationUserCount = nurseStationPersonMapper.getNurseStationUserCount(hospitalPersonInfo.getPersonPhone());
if (nurseStationUserCount > 0) {
throw new ServiceException("您输入的联系电话" + hospitalPersonInfo.getPersonPhone() + "重复!");
}
}
sysUser.setHospitalPersonId(hospitalPersonInfo.getId()); sysUser.setHospitalPersonId(hospitalPersonInfo.getId());
updUser.setPassword(SecurityUtils.encryptPassword(hospitalPersonInfo.getPersonPassword())); updUser.setPassword(SecurityUtils.encryptPassword(hospitalPersonInfo.getPersonPassword()));
updUser.setNickName(hospitalPersonInfo.getPersonName()); updUser.setNickName(hospitalPersonInfo.getPersonName());
updUser.setHospitalPersonId(hospitalPersonInfo.getId()); updUser.setHospitalPersonId(hospitalPersonInfo.getId());
updUser.setHospitalId(hospitalPersonInfo.getHospitalId()); updUser.setHospitalId(hospitalPersonInfo.getHospitalId());
updUser.setPhonenumber(StringUtils.isBlank(hospitalPersonInfo.getPersonPhone()) ? "" : hospitalPersonInfo.getPersonPhone());
updUser.setStatus("0"); updUser.setStatus("0");
updUser.setDelFlag("0"); updUser.setDelFlag("0");
userMapper.updateUser(updUser); userMapper.updateUser(updUser);
} }
//根据科室人员id去查询对应的资质证书 使用流来获取所有的证书路径 //根据科室人员id去查询对应的资质证书 使用流来获取所有的证书路径
List<HospitalPersonCertificate> hospitalPersonCertificateList = hospitalPersonCertificateMapper.selectHospitalPersonCertificateByIds(Collections.singletonList(hospitalPersonInfo.getId())); List<HospitalPersonCertificate> hospitalPersonCertificateList = hospitalPersonCertificateMapper.selectHospitalPersonCertificateByIds(Collections.singletonList(hospitalPersonInfo.getId()));
//数据库中的 //数据库中的

View File

@ -451,4 +451,17 @@
</if> </if>
ORDER BY send_time desc ORDER BY send_time desc
</select> </select>
<!-- 查询最后一次通知记录 -->
<select id="getLast" resultType="com.xinelu.manage.domain.chatRecord.ChatRecord">
select
message_no,message_category,source_type,consultation_id,crowds,crowds_name,sender_id,
sender_name,send_time as send_time1,recipient_id,
recipient_name,message_type,title,content,content_id,
read_status,title
from chat_record
where del_flag = '0' and message_category = #{messageCategory} and recipient_id = #{recipientId}
order by send_time desc
limit 1
</select>
</mapper> </mapper>

View File

@ -590,4 +590,8 @@
</trim> </trim>
where person_code = #{personCode} where person_code = #{personCode}
</update> </update>
<select id="getPersonInfoByPhoneNumber" resultType="int">
select count(1) from hospital_person_info where person_phone = #{phoneNumber}
</select>
</mapper> </mapper>

View File

@ -145,7 +145,7 @@
</select> </select>
<select id="checkPhoneUnique" parameterType="String" resultMap="SysUserResult"> <select id="checkPhoneUnique" parameterType="String" resultMap="SysUserResult">
select user_id, phonenumber from sys_user where phonenumber = #{phonenumber} limit 1 select user_id, phonenumber from sys_user where phonenumber = #{phonenumber} and del_flag = 0 limit 1
</select> </select>
<select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult"> <select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
@ -231,5 +231,4 @@
#{userId} #{userId}
</foreach> </foreach>
</delete> </delete>
</mapper> </mapper>