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.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<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_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
<where>
<if test="nursePersonId != null and nursePersonId != ''">
and nsp.id = #{nursePersonId}
</if>
and su.del_flag = 0
</where>
ORDER BY nspc.sort
-- ORDER BY nspc.sort
</select>
</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")
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);
/**
* @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.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接口
@ -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);
}

View File

@ -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表
//保存到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();
}
@ -188,28 +196,39 @@ public class HospitalPersonInfoServiceImpl implements IHospitalPersonInfoService
if (count > 0) {
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();
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);
if (!hospitalPersonInfo.getPersonPhone().equals(updUser.getPhonenumber())){
int nurseStationUserCount = nurseStationPersonMapper.getNurseStationUserCount(hospitalPersonInfo.getPersonPhone());
if (nurseStationUserCount > 0) {
throw new ServiceException("您输入的联系电话" + hospitalPersonInfo.getPersonPhone() + "重复!");
}
}
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<HospitalPersonCertificate> hospitalPersonCertificateList = hospitalPersonCertificateMapper.selectHospitalPersonCertificateByIds(Collections.singletonList(hospitalPersonInfo.getId()));
//数据库中的

View File

@ -451,4 +451,17 @@
</if>
ORDER BY send_time desc
</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>

View File

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

View File

@ -145,7 +145,7 @@
</select>
<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 id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
@ -231,5 +231,4 @@
#{userId}
</foreach>
</delete>
</mapper>