xinelu-api/xinelu-familydoctor/src/main/resources/mapper/sign/ResidentServiceApplyMapper.xml
mengkuiliang 4023b7fbef 添加服务记录接口;
获取签约协议接口修改;
2023-10-16 09:03:16 +08:00

355 lines
16 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xinelu.familydoctor.applet.mapper.ResidentServiceApplyMapper">
<resultMap id="BaseResultMap" type="com.xinelu.familydoctor.applet.pojo.entity.ResidentServiceApplyEntity">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="bookingNo" column="booking_no" jdbcType="VARCHAR"/>
<result property="patientId" column="patient_id" jdbcType="VARCHAR"/>
<result property="residentName" column="resident_name" jdbcType="VARCHAR"/>
<result property="identity" column="identity" jdbcType="VARCHAR"/>
<result property="packageNo" column="package_no" jdbcType="VARCHAR"/>
<result property="packageName" column="package_name" jdbcType="VARCHAR"/>
<result property="formNo" column="form_no" jdbcType="VARCHAR"/>
<result property="formName" column="form_name" jdbcType="VARCHAR"/>
<result property="serviceWay" column="service_way" jdbcType="VARCHAR"/>
<result property="bookingTime" column="booking_time" jdbcType="TIMESTAMP"/>
<result property="orgNo" column="org_no" jdbcType="VARCHAR"/>
<result property="orgName" column="org_name" jdbcType="VARCHAR"/>
<result property="teamNo" column="team_no" jdbcType="VARCHAR"/>
<result property="teamName" column="team_name" jdbcType="VARCHAR"/>
<result property="userNo" column="user_no" jdbcType="VARCHAR"/>
<result property="userName" column="user_name" jdbcType="VARCHAR"/>
<result property="applyTime" column="apply_time" jdbcType="TIMESTAMP"/>
<result property="bookingStatus" column="booking_status" jdbcType="VARCHAR"/>
<result property="cancelTime" column="cancel_time" jdbcType="TIMESTAMP"/>
<result property="completeTime" column="complete_time" jdbcType="TIMESTAMP"/>
<result property="approvalStatus" column="approval_status" jdbcType="VARCHAR"/>
<result property="refuseReason" column="refuse_reason" jdbcType="VARCHAR"/>
<result property="approvalTime" column="approval_time" jdbcType="TIMESTAMP"/>
<result property="remark" column="remark" jdbcType="VARCHAR"/>
</resultMap>
<resultMap id="ServiceApplyRecordMap" type="com.xinelu.familydoctor.applet.pojo.vo.ResidentServiceApplyVo">
<result property="bookingNo" column="booking_no" jdbcType="VARCHAR"/>
<result property="patientId" column="patient_id" jdbcType="VARCHAR"/>
<result property="residentName" column="resident_name" jdbcType="VARCHAR"/>
<result property="identity" column="identity" jdbcType="VARCHAR"/>
<result property="packageNo" column="package_no" jdbcType="VARCHAR"/>
<result property="packageName" column="package_name" jdbcType="VARCHAR"/>
<result property="formNo" column="form_no" jdbcType="VARCHAR"/>
<result property="formName" column="form_name" jdbcType="VARCHAR"/>
<result property="serviceWay" column="service_way" jdbcType="VARCHAR"/>
<result property="bookingTime" column="booking_time" jdbcType="TIMESTAMP"/>
<result property="applyTime" column="apply_time" jdbcType="TIMESTAMP"/>
<result property="bookingStatus" column="booking_status" jdbcType="VARCHAR"/>
<result property="cancelTime" column="cancel_time" jdbcType="TIMESTAMP"/>
<result property="completeTime" column="complete_time" jdbcType="TIMESTAMP"/>
<result property="approvalStatus" column="approval_status" jdbcType="VARCHAR"/>
<result property="refuseReason" column="refuse_reason" jdbcType="VARCHAR"/>
<result property="approvalTime" column="approval_time" jdbcType="TIMESTAMP"/>
<result property="remark" column="remark" jdbcType="VARCHAR"/>
<!-- 服务评价 -->
<association property="orderEvaluateInfo" notNullColumn="service_code" javaType="com.xinelu.familydoctor.applet.pojo.vo.OrderEvaluateInfoVo">
<result property="id" column="id"/>
<result property="openid" column="openid"/>
<result property="unionid" column="unionid"/>
<result property="orderNo" column="order_no"/>
<result property="serviceCode" column="service_code"/>
<result property="evaluateContent" column="evaluate_content"/>
<result property="evaluateChannel" column="evaluate_channel"/>
<result property="evaluateSatisfaction" column="evaluate_satisfaction"/>
<result property="compositeScore" column="composite_score"/>
<result property="orderSource" column="order_source"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<collection property="orderEvaluatePictureInfoList" notNullColumn="evaluate_picture_url" javaType="java.util.List" resultMap="OrderEvaluatePictureInfoMap"/>
</association>
</resultMap>
<!--评价图片-->
<resultMap type="com.xinelu.manage.domain.orderevaluatepictureinfo.OrderEvaluatePictureInfo" id="OrderEvaluatePictureInfoMap">
<result property="id" column="id"/>
<result property="orderEvaluateId" column="order_evaluate_id"/>
<result property="evaluatePictureUrl" column="evaluate_picture_url"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
</resultMap>
<sql id="Base_Column_List">
id,booking_no,patient_id,
resident_name,identity,package_no,
package_name,form_no,form_name,
service_way,booking_time,org_no,
org_name,team_no,team_name,
user_no,user_name,apply_time,
booking_status,cancel_time,complete_time,
approval_status,refuse_reason,approval_time,
remark
</sql>
<sql id="Base_Column_Service_Apply">
s.id,s.booking_no,s.patient_id,
s.resident_name,s.identity,s.package_no,
s.package_name,s.form_no,s.form_name,
s.service_way,s.booking_time,s.org_no,
s.org_name,s.team_no,s.team_name,
s.user_no,s.user_name,s.apply_time,
s.booking_status,s.cancel_time,s.complete_time,
s.approval_status,s.refuse_reason,s.approval_time,
s.remark
</sql>
<sql id="Base_Column_Evaluate_Info">
oei.id, oei.openid, oei.unionid, oei.order_no, oei.service_code,
oei.evaluate_content, oei.evaluate_channel, oei.evaluate_satisfaction, oei.composite_score, oei.order_source,
oei.create_by, oei.create_time, oei.update_by, oei.update_time
</sql>
<sql id="Base_Column_Evaluate_Picture">
oepi.id, oepi.order_evaluate_id, oepi.evaluate_picture_url, oepi.create_by, oepi.create_time, oepi.update_by, oepi.update_time
</sql>
<sql id="Insert_Column_List">
booking_no,patient_id,
resident_name,identity,package_no,
package_name,form_no,form_name,
service_way,booking_time,org_no,
org_name,team_no,team_name,
user_no,user_name,apply_time,
booking_status,cancel_time,complete_time,
approval_status,refuse_reason,approval_time,
remark
</sql>
<!-- 新增 -->
<insert id="insert">
insert into resident_service_apply
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="bookingNo != null and bookingNo != ''">booking_no,
</if>
<if test="patientId != null and patientId != ''">patient_id,
</if>
<if test="residentName != null and residentName != ''">resident_name,
</if>
<if test="identity != null and identity != ''">identity,
</if>
<if test="packageNo != null">package_no,
</if>
<if test="packageName != null">package_name,
</if>
<if test="formNo != null">form_no,
</if>
<if test="formName != null">form_name,
</if>
<if test="orgNo != null and orgNo != ''">org_no,
</if>
<if test="orgName != null and orgName != ''">org_name,
</if>
<if test="teamNo != null and teamNo != ''">team_no,
</if>
<if test="teamName != null and teamName != ''">team_name,
</if>
<if test="userNo != null and userNo != ''">user_no,
</if>
<if test="userName != null and userName != ''">user_name,
</if>
<if test="bookingTime != null">booking_time,
</if>
<if test="applyTime != null">apply_time,
</if>
<if test="bookingStatus != null and bookingStatus != ''">booking_status,
</if>
<if test="cancelTime != null">cancel_time,
</if>
<if test="approvalStatus != null and approvalStatus != ''">approval_status,
</if>
<if test="refuseReason != null">refuse_reason,
</if>
<if test="approvalTime != null">approval_time,
</if>
<if test="remark != null">remark,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="bookingNo != null and bookingNo != ''">#{bookingNo},
</if>
<if test="patientId != null and patientId != ''">#{patientId},
</if>
<if test="residentName != null and residentName != ''">#{residentName},
</if>
<if test="identity != null and identity != ''">#{identity},
</if>
<if test="packagesNo != null">#{packagesNo},
</if>
<if test="packagesName != null">#{packagesName},
</if>
<if test="formNo != null">#{formNo},
</if>
<if test="formName != null">#{formName},
</if>
<if test="orgNo != null and orgNo != ''">#{orgNo},
</if>
<if test="orgName != null and orgName != ''">#{orgName},
</if>
<if test="teamNo != null and teamNo != ''">#{teamNo},
</if>
<if test="teamName != null and teamName != ''">#{teamName},
</if>
<if test="userNo != null and userNo != ''">#{userNo},
</if>
<if test="userName != null and userName != ''">#{userName},
</if>
<if test="bookingTime != null">#{bookingTime},
</if>
<if test="applyTime != null">#{applyTime},
</if>
<if test="bookingStatus != null and bookingStatus != ''">#{bookingStatus},
</if>
<if test="cancelTime != null">#{cancelTime},
</if>
<if test="approvalStatus != null and approvalStatus != ''">#{approvalStatus},
</if>
<if test="refuseReason != null">#{refuseReason},
</if>
<if test="approvalTime != null">#{approvalTime},
</if>
<if test="remark != null">#{remark},
</if>
</trim>
</insert>
<!-- 批量插入 -->
<insert id="batchInsert">
insert into resident_service_apply (<include refid="Insert_Column_List"></include>)
values
<foreach collection="list" separator="," item="item">
(#{item.bookingNo}, #{item.patientId}, #{item.residentName}, #{item.identity},
#{item.packageNo}, #{item.packageName}, #{item.formNo},
#{item.formName}, #{item.serviceWay}, #{item.bookingTime}, #{item.orgNo},#{item.orgName},
#{item.teamNo},#{item.teamName}, #{item.userNo}, #{item.userName},
#{item.applyTime}, #{item.bookingStatus}, #{item.cancelTime},
#{item.completeTime}, #{item.approvalStatus}, #{item.refuseReason},
#{item.approvalTime},#{item.remark}
)
</foreach>
</insert>
<!-- 取消服务申请 -->
<update id="cancel">
update resident_service_apply
set booking_status = '2',
cancel_time = now()
where booking_no = #{bookingNo}
</update>
<select id="findByBody" resultType="com.xinelu.familydoctor.applet.pojo.vo.ResidentServiceApplyVo">
select <include refid="Base_Column_Service_Apply"></include>,p.address,p.phone
from resident_service_apply s
left join patient_info p on p.patient_code = s.patient_id
where 1=1
<if test="identity != null and identity != ''">
and s.identity = #{identity}
</if>
<if test="residentName != null and residentName != ''">
and s.resident_name like concat(#{residentName},'%')
</if>
<if test="orgNo != null and orgNo != ''">
and s.org_no = #{orgNo}
</if>
<if test="teamNo != null and teamNo != ''">
and s.team_no = #{teamNo}
</if>
<if test="userNo != null and userNo != ''">
and s.user_no = #{userNo}
</if>
<if test="startDate != null">
and s.booking_time >= #{startDate}
</if>
<if test="endDate != null">
and s.booking_time &lt;= #{endDate}
</if>
<if test="bookingStatus != null and bookingStatus != ''">
and s.booking_status = #{bookingStatus}
</if>
<if test="approvalStatus != null and approvalStatus != ''">
and s.approval_status = #{approvalStatus}
</if>
<if test="completed != null and completed != ''">
<choose>
<!-- 已完成 -->
<when test="completed == 1">
and (s.booking_status = '1' or s.approval_status in ('1','2'))
</when>
<!-- 未完成 -->
<when test="completed == 2">
and (s.booking_status = '0' and s.approval_status = '0')
</when>
<otherwise></otherwise>
</choose>
</if>
order by s.booking_time desc
</select>
<!-- 查询未完成的服务申请 -->
<select id="getServiceBookingByIdentity" resultType="com.xinelu.familydoctor.applet.pojo.vo.ResidentServiceApplyVo">
select <include refid="Base_Column_List"></include> from resident_service_apply where identity = #{identity} and
booking_status = '0' and approval_status ='0' order by booking_time desc limit 1
</select>
<!-- 服务申请详情 -->
<select id="detail" resultType="com.xinelu.familydoctor.applet.pojo.vo.ResidentServiceApplyVo">
select <include refid="Base_Column_List"></include> from resident_service_apply where booking_no = #{bookingNo}
</select>
<!-- 服务记录列表 -->
<select id="getRecord" resultMap="ServiceApplyRecordMap">
select <include refid="Base_Column_Service_Apply"></include>,
<include refid="Base_Column_Evaluate_Info"></include>,
<include refid="Base_Column_Evaluate_Picture"></include>
from resident_service_apply s
left join order_evaluate_info oei on oei.service_code = s.booking_no and oei.order_source = 'FAMILY_DOCTOR'
left join order_evaluate_picture_info oepi on oepi.order_evaluate_id = oei.id
where 1=1
<if test="identity != null and identity != ''">
and s.identity = #{identity}
</if>
<if test="startDate != null">
and s.booking_time >= #{startDate}
</if>
<if test="endDate != null">
and s.booking_time &lt;= #{endDate}
</if>
<choose>
<when test="isEvaluate == 1">and oei.id is not null</when>
<when test="isEvaluate == 2">and oei.id is null</when>
</choose>
</select>
<update id="updateEx">
update resident_service_apply
<set>
<if test="approvalStatus != null and approvalStatus != ''">
approval_status = #{approvalStatus},
</if>
<if test="refuseReason != null and refuseReason != ''">
refuse_reason = #{refuseReason},
</if>
approval_time = now()
</set>
where booking_no = #{applyNo};
</update>
<!-- 更新服务完成时间 -->
<update id="updateComplete">
update resident_service_apply set complete_time = now(),booking_status = '1' where booking_no = #{bookingNo}
</update>
</mapper>