添加 家医用户同步小程序科室人员信息 接口;

This commit is contained in:
mengkuiliang 2023-10-20 17:08:31 +08:00
parent 1379142381
commit e83666f45a
14 changed files with 437 additions and 71 deletions

View File

@ -1,9 +1,11 @@
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.domain.R;
import com.xinelu.familydoctor.applet.pojo.body.ApprovalBody;
import com.xinelu.familydoctor.applet.pojo.body.SyncHospitalPersonInfoBody;
import com.xinelu.familydoctor.applet.pojo.query.ApplyQuery;
import com.xinelu.familydoctor.applet.pojo.vo.ResidentRescindApplyVo;
import com.xinelu.familydoctor.applet.pojo.vo.ResidentServiceApplyVo;
@ -11,11 +13,16 @@ 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.hospitalinfo.HospitalInfo;
import com.xinelu.manage.domain.hospitalpersoninfo.HospitalPersonInfo;
import com.xinelu.manage.service.hospitalinfo.IHospitalInfoService;
import com.xinelu.manage.service.hospitalpersoninfo.IHospitalPersonInfoService;
import com.xinelu.manage.service.patientinfo.IPatientInfoService;
import com.xinelu.manage.vo.patientinfo.PatientInfoVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@ -33,6 +40,10 @@ public class FDController {
private IResidentServiceAppletService residentServiceAppletService;
@Resource
private IPatientInfoService patientInfoService;
@Resource
private IHospitalPersonInfoService hospitalPersonInfoService;
@Resource
private IHospitalInfoService hospitalInfoService;
@ApiOperation("服务申请列表")
@PostMapping("/performanceBooking/list")
@ -40,6 +51,7 @@ public class FDController {
PageHelper.startPage(query.getPageNum(), query.getPageSize());
return R.ok(PageInfo.of(residentServiceAppletService.findList(query)));
}
@ApiOperation("服务申请详情")
@GetMapping("/performanceBooking/detail/{bookingNo}")
public R<ResidentServiceApplyVo> performanceBookingDetail(@PathVariable String bookingNo) {
@ -73,6 +85,7 @@ public class FDController {
query.setBookingStatus("0");
return R.ok(PageInfo.of(residentRescindApplyService.findList(query)));
}
@ApiOperation("解约申请详情")
@GetMapping("/rescindApply/detail/{applyNo}")
public R<ResidentRescindApplyVo> rescindApplyDetail(@PathVariable String applyNo) {
@ -127,4 +140,56 @@ public class FDController {
}
return R.ok(retObj);
}
@ApiOperation("家医医生同步科室人员信息")
@PostMapping("/synHospatialPersonInfo")
public R<?> synHospatialPersonInfo(@RequestBody SyncHospitalPersonInfoBody body) {
if (body == null) {
return R.fail("请求参数不能为空");
}
if (StringUtils.isBlank(body.getPersonCode())) {
return R.fail("科室人员编号不能为空");
}
if (StringUtils.isBlank(body.getOrgCode())) {
return R.fail("家医机构编号不能为空");
}
// 判断是否已存在
HospitalPersonInfo hospitalPersonInfo = hospitalPersonInfoService.getByPersonCode(body.getPersonCode(), body.getStatus());
// 根据家医机构查询医院信息
HospitalInfo hospital = hospitalInfoService.getHosptalByOrgCode(body.getOrgCode());
// 新增
if (hospitalPersonInfo == null) {
hospitalPersonInfo = new HospitalPersonInfo();
BeanUtils.copyProperties(body, hospitalPersonInfo);
hospitalPersonInfo.setCreateBy(body.getPersonCode());
hospitalPersonInfo.setStatus("1");
if (hospital != null) {
hospitalPersonInfo.setHospitalId(hospital.getId());
}
hospitalPersonInfoService.insert(hospitalPersonInfo);
// 修改
} else {
if (!String.valueOf(hospitalPersonInfo.getPersonAccount()).equals(String.valueOf(body.getPersonAccount()))
|| !String.valueOf(hospitalPersonInfo.getPersonPhone()).equals(String.valueOf(body.getPersonPhone()))
|| !String.valueOf(hospitalPersonInfo.getPersonName()).equals(String.valueOf(body.getPersonName()))
|| !String.valueOf(hospitalPersonInfo.getPersonIntroduce()).equals(String.valueOf(body.getPersonIntroduce()))
|| !String.valueOf(hospitalPersonInfo.getCardNo()).equals(String.valueOf(body.getCardNo()))
) {
hospitalPersonInfo.setPersonName(body.getPersonName());
hospitalPersonInfo.setPersonPhone(body.getPersonPhone());
hospitalPersonInfo.setPersonAddress(body.getPersonAddress());
hospitalPersonInfo.setPersonAccount(body.getPersonAccount());
hospitalPersonInfo.setPersonIntroduce(body.getPersonIntroduce());
hospitalPersonInfo.setCardNo(body.getCardNo());
if (hospital != null) {
hospitalPersonInfo.setHospitalId(hospital.getId());
}
hospitalPersonInfo.setUpdateBy(body.getPersonCode());
hospitalPersonInfoService.updateByPersonCode(hospitalPersonInfo);
}
}
return R.ok();
}
}

View File

@ -0,0 +1,115 @@
package com.xinelu.familydoctor.applet.pojo.body;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @Author mengkuiliang
* @Description 同步科室人员信息请求对象
* @Date 2023-10-20 020 14:18
* @Param
* @return
**/
@Data
@ApiModel(value = "同步科室人员信息请求对象")
public class SyncHospitalPersonInfoBody {
/**
* 所属医院id
*/
@ApiModelProperty(value = "所属医院id")
private Long hospitalId;
/**
* 所属部门id
*/
@ApiModelProperty(value = "所属部门id")
private Long departmentId;
/**
* 科室人员编码
*/
@ApiModelProperty(value = "科室人员编码")
private String personCode;
/**
* 科室人员名称
*/
@ApiModelProperty(value = "科室人员名称")
private String personName;
/**
* 科室人员联系电话
*/
@ApiModelProperty(value = "科室人员联系电话")
private String personPhone;
/**
* 科室人员地址
*/
@ApiModelProperty(value = "科室人员地址")
private String personAddress;
/**
* 身份证号
*/
@ApiModelProperty(value = "身份证号")
private String cardNo;
/**
* 人员职称主任医师CHIEF_PHYSICIAN副主任医师DEPUTY_CHIEF_PHYSICIAN主治医师ATTENDING_DOCTOR医师PHYSICIAN医士HEALER住院医师RESIDENT_PHYSICIAN
*/
@ApiModelProperty(value = "人员职称主任医师CHIEF_PHYSICIAN副主任医师DEPUTY_CHIEF_PHYSICIAN主治医师ATTENDING_DOCTOR医师PHYSICIAN医士HEALER住院医师RESIDENT_PHYSICIAN")
private String academicTitle;
/**
* 咨询费用
*/
@ApiModelProperty(value = "咨询费用")
private BigDecimal consultingFee;
/**
* 个人简介
*/
@ApiModelProperty(value = "个人简介")
private String personIntroduce;
/**
* 显示顺序
*/
@ApiModelProperty(value = "显示顺序")
private Integer personSort;
/**
* 科室人员头像地址
*/
@ApiModelProperty(value = "科室人员头像地址")
private String personPictureUrl;
/**
* 科室人员账号
*/
@ApiModelProperty(value = "科室人员账号")
private String personAccount;
/**
* 科室人员密码
*/
@ApiModelProperty(value = "科室人员密码")
private String personPassword;
/**
*1家医医生 2泉医医生 3专病医生
*/
@ApiModelProperty(value = "1家医医生 2泉医医生 3专病医生")
private String status;
/**
*1家医机构编号
*/
@ApiModelProperty(value = "家医机构编号")
private String orgCode;
}

View File

@ -149,10 +149,10 @@ public class DoctorDetailVo {
private String phOrgId;
/**
* 公卫机构编号
* 家医机构编号
*/
@ApiModelProperty("公卫机构编号")
private String phOrgCode;
@ApiModelProperty("家医机构编号")
private String orgCode;
/**
* 个人简介

View File

@ -59,10 +59,10 @@ public class OrgDetailVo {
private String phOrgId;
/**
* 公卫机构编码
* 家医机构编码
*/
@ApiModelProperty("公卫机构编码")
private String phOrgCode;
@ApiModelProperty("家医机构编码")
private String orgCode;
/**
* 机构类型0卫健委1卫健局2医院3乡镇卫生院4街道卫生服务中心5社区服务站6村卫生室

View File

@ -3,6 +3,7 @@ package com.xinelu.familydoctor.applet.service;
import com.github.pagehelper.PageInfo;
import com.xinelu.familydoctor.applet.pojo.body.ApprovalBody;
import com.xinelu.familydoctor.applet.pojo.body.ResidentSignApplyBody;
import com.xinelu.familydoctor.applet.pojo.body.SyncHospitalPersonInfoBody;
import com.xinelu.familydoctor.applet.pojo.query.ApplyQuery;
import com.xinelu.familydoctor.applet.pojo.vo.ResidentSignApplyVo;

View File

@ -275,7 +275,7 @@ public class ResidentServiceApplyServiceImpl implements IResidentServiceAppletSe
if (signInfo == null) {
throw new ServiceException("未查询到签约信息!");
}
// 获取家医个性服务包
// 1获取家医个性服务包
result = (String) httpService.get(SpringUtils.getFdUrl(region) + "/package/getPackageOfGX/" + identity + (!StringUtils.isBlank(projectName) ? ("?formName=" + projectName) : "?formName=null"), null, String.class);
jsonObject = JSONObject.parseObject(result);
if (!"1".equals(jsonObject.get("code"))) {
@ -307,16 +307,9 @@ public class ResidentServiceApplyServiceImpl implements IResidentServiceAppletSe
}
}
// 获取签约机构下的筛查项目
// 获取家医机构详情
result = (String) httpService.get(SpringUtils.getFdUrl(region) + "/org/getOrgDetail/" + signInfo.getOrgNo(), null, String.class);
jsonObject = JSONObject.parseObject(result);
if ("1".equals(jsonObject.get("code"))) {
if (jsonObject.containsKey("data") && jsonObject.get("data") != null) {
OrgDetailVo org = JSONObject.parseObject(jsonObject.getJSONObject("data").toJSONString(), OrgDetailVo.class);
if (org != null && !StringUtils.isBlank(org.getPhOrgId())) {
// 2获取签约机构下的筛查项目
// 根据机构编码获取筛查机构
HospitalInfo Hospital = hospitalInfoService.getHosptalByOrgCode(org.getPhOrgId());
HospitalInfo Hospital = hospitalInfoService.getHosptalByOrgCode(signInfo.getOrgNo());
if (Hospital != null) {
// 获取筛查项目
ScreeningProject query = new ScreeningProject();
@ -339,9 +332,6 @@ public class ResidentServiceApplyServiceImpl implements IResidentServiceAppletSe
}
}
}
}
}
return projectList;
}

View File

@ -85,6 +85,11 @@ public class HospitalInfo extends BaseDomain implements Serializable {
@NotNull(message = "显示顺序不能为空", groups = {Insert.class, Update.class})
private Integer hospitalSort;
/**
* 家医机构编号
*/
@ApiModelProperty(value = "家医机构编号")
private String orgCode;
@Override
public String toString() {
@ -100,6 +105,7 @@ public class HospitalInfo extends BaseDomain implements Serializable {
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("orgCode", getOrgCode())
.toString();
}
}

View File

@ -6,10 +6,12 @@ import com.xinelu.common.custominterface.Insert;
import com.xinelu.common.custominterface.Update;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -138,6 +140,11 @@ public class HospitalPersonInfo extends BaseDomain implements Serializable {
*/
private String personPassword;
/**
*1家医医生 2泉医医生 3专病医生
*/
@ApiModelProperty(value = "1家医医生 2泉医医生 3专病医生")
private String status;
@Override
public String toString() {

View File

@ -109,4 +109,22 @@ public interface HospitalPersonInfoMapper {
* @return int
**/
int selectHospitalPersonInfoByIdCount(Long id);
/**
* @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);
/**
* @Author mengkuiliang
* @Description 根据科室人员编号更新
* @Date 2023-10-20 020 15:03
* @Param [hospitalPersonInfo]
* @return int
**/
int updateByPersonCode(HospitalPersonInfo hospitalPersonInfo);
}

View File

@ -77,4 +77,31 @@ public interface IHospitalPersonInfoService {
* @return
*/
int editHospitalPersonInfo(HospitalPersonInfoDtoo hospitalPersonInfo);
/**
* @Author mengkuiliang
* @Description 根据科室人员编码查询人员信息
* @Date 2023-10-20 020 14:34
* @Param
* @return
**/
HospitalPersonInfo getByPersonCode(String personCode, String status);
/**
* @Author mengkuiliang
* @Description 新增
* @Date 2023-10-20 020 14:42
* @Param [body]
* @return void
**/
int insert(HospitalPersonInfo body);
/**
* @Author mengkuiliang
* @Description 根据科室人员编号更新
* @Date 2023-10-20 020 15:02
* @Param [hospitalPersonInfo]
* @return void
**/
int updateByPersonCode(HospitalPersonInfo hospitalPersonInfo);
}

View File

@ -329,4 +329,41 @@ public class HospitalPersonInfoServiceImpl implements IHospitalPersonInfoService
public int editHospitalPersonInfo(HospitalPersonInfoDtoo hospitalPersonInfo) {
return hospitalPersonInfoMapper.editHospitalPersonInfo(hospitalPersonInfo);
}
/**
* @Author mengkuiliang
* @Description 根据科室人员编码查询人员信息
* @Date 2023-10-20 020 14:37
* @Param [personCode]
* @return com.xinelu.manage.domain.hospitalpersoninfo.HospitalPersonInfo
**/
@Override
public HospitalPersonInfo getByPersonCode(String personCode, String status) {
return hospitalPersonInfoMapper.getByPersonCode(personCode, status);
}
/**
* @Author mengkuiliang
* @Description 新增
* @Date 2023-10-20 020 14:54
* @Param [body]
* @return void
**/
@Override
public int insert(HospitalPersonInfo body) {
return hospitalPersonInfoMapper.insertHospitalPersonInfo(body);
}
/**
* @Author mengkuiliang
* @Description 根据科室人员编号更新
* @Date 2023-10-20 020 15:02
* @Param [hospitalPersonInfo]
* @return int
**/
@Override
public int updateByPersonCode(HospitalPersonInfo hospitalPersonInfo) {
return hospitalPersonInfoMapper.updateByPersonCode(hospitalPersonInfo);
}
}

View File

@ -16,6 +16,7 @@
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="orgCode" column="org_code"/>
</resultMap>
<sql id="selectHospitalInfoVo">
@ -29,7 +30,8 @@
create_by,
create_time,
update_by,
update_time
update_time,
org_code
from hospital_info
</sql>
@ -91,6 +93,9 @@
</if>
<if test="updateTime != null">update_time,
</if>
<if test="orgCode != null">
org_code,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="hospitalName != null">#{hospitalName},
@ -113,6 +118,9 @@
</if>
<if test="updateTime != null">#{updateTime},
</if>
<if test="orgCode != null">
#{orgCode},
</if>
</trim>
</insert>
@ -149,6 +157,9 @@
<if test="updateTime != null">update_time =
#{updateTime},
</if>
<if test="orgCode != null">
org_code = #{orgCode},
</if>
</trim>
where id = #{id}
</update>
@ -183,6 +194,6 @@
<!-- 根据家医机构编码查询医院 -->
<select id="getHosptalByOrgCode" resultType="com.xinelu.manage.domain.hospitalinfo.HospitalInfo">
<include refid="selectHospitalInfoVo"/>
where ph_org_code = #{orgCode} limit 1
where org_code = #{orgCode} limit 1
</select>
</mapper>

View File

@ -24,6 +24,7 @@
<result property="updateTime" column="update_time"/>
<result property="personAccount" column="person_account"/>
<result property="personPassword" column="person_password"/>
<result property="status" column="status"/>
</resultMap>
<resultMap type="com.xinelu.manage.vo.hospitalpersoninfo.HospitalPersonInfoVO" id="HospitalPersonByIdVO">
@ -46,6 +47,7 @@
<result property="updateTime" column="update_time"/>
<result property="hospitalName" column="hospital_name"/>
<result property="departmentName" column="department_name"/>
<result property="status" column="status"/>
<collection property="hospitalPersonCertificateList" javaType="java.util.List"
resultMap="HospitalPersonInfoById"/>
</resultMap>
@ -78,7 +80,8 @@
create_by,
create_time,
update_by,
update_time
update_time,
status
from hospital_person_info
</sql>
@ -104,7 +107,8 @@
hpi.create_by,
hpi.create_time,
hpi.update_by,
hpi.update_time
hpi.update_time,
status
FROM
hospital_person_info hpi
LEFT JOIN hospital_department_info hdi ON hpi.department_id = hdi.id
@ -142,6 +146,9 @@
<if test="personSort != null ">
and hpi.person_sort = #{personSort}
</if>
<if test="status != null and status != ''">
and hpi.status = #{status}
</if>
</where>
ORDER BY id DESC
</select>
@ -162,7 +169,8 @@
hpi.create_by,
hpi.create_time,
hpi.update_by,
hpi.update_time
hpi.update_time,
status
FROM hospital_person_info hpi
<where>
<if test="hospitalId != null ">
@ -180,6 +188,9 @@
<if test="academicTitle != null and academicTitle != ''">
and hpi.academic_title = #{academicTitle}
</if>
<if test="status != null and status != ''">
and hpi.status = #{status}
</if>
</where>
ORDER BY id DESC
</select>
@ -205,6 +216,7 @@
hpi.create_time,
hpi.update_by,
hpi.update_time,
hpi.status,
hpc.hospital_person_id,
hpc.certificate_name,
hpc.certificate_code,
@ -254,6 +266,9 @@
</if>
<if test="updateTime != null">update_time,
</if>
<if test="status != null">
status,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="hospitalId != null">#{hospitalId},
@ -290,6 +305,9 @@
</if>
<if test="updateTime != null">#{updateTime},
</if>
<if test="status != null">
#{status},
</if>
</trim>
</insert>
@ -346,6 +364,9 @@
<if test="updateTime != null">update_time =
#{updateTime},
</if>
<if test="status != null">
status = #{status},
</if>
</trim>
where id = #{id}
</update>
@ -403,6 +424,9 @@
<if test="updateTime != null">update_time =
#{updateTime},
</if>
<if test="status != null">
status = #{status},
</if>
</trim>
where id = #{id}
</update>
@ -452,7 +476,8 @@
create_by,
create_time,
update_by,
update_time
update_time,
status
from hospital_person_info
<where>
<if test="hospitalPersonIdsList != null and hospitalPersonIdsList.size()>0 ">
@ -489,4 +514,68 @@
</if>
</where>
</select>
<!-- 根据科室人员编码查询人员信息 -->
<select id="getByPersonCode" resultType="com.xinelu.manage.domain.hospitalpersoninfo.HospitalPersonInfo">
<include refid="selectHospitalPersonInfoVo"></include>
where person_code = #{personCode}
<if test="status != null and status != ''">
and status = #{status}
</if>
limit 1
</select>
<!-- 根据科室人员编号更新 -->
<update id="updateByPersonCode" parameterType="com.xinelu.manage.domain.hospitalpersoninfo.HospitalPersonInfo">
update hospital_person_info
<trim prefix="SET" suffixOverrides=",">
<if test="hospitalId != null">hospital_id =
#{hospitalId},
</if>
<if test="departmentId != null">department_id =
#{departmentId},
</if>
<if test="personName != null">person_name =
#{personName},
</if>
<if test="personPhone != null">
person_phone = #{personPhone},
</if>
<if test="personAddress != null">person_address =
#{personAddress},
</if>
<if test="cardNo != null">
card_no = #{cardNo},
</if>
<if test="academicTitle != null">academic_title =
#{academicTitle},
</if>
<if test="consultingFee != null">consulting_fee =
#{consultingFee},
</if>
<if test="personIntroduce != null">person_introduce =
#{personIntroduce},
</if>
<if test="personSort != null">person_sort =
#{personSort},
</if>
<if test="personPictureUrl != null">person_picture_url =
#{personPictureUrl},
</if>
<if test="personAccount != null">person_account =
#{personAccount},
</if>
<if test="personPassword != null">person_password =
#{personPassword},
</if>
<if test="updateBy != null">update_by =
#{updateBy},
</if>
<if test="status != null">
status = #{status},
</if>
update_time = now(),
</trim>
where person_code = #{personCode}
</update>
</mapper>