liusheng
2024-11-29 8d913e5594f45ca2a4ce656ea9feb99ffe715913
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -9,6 +9,8 @@
        <result property="sendname" column="sendname"/>
        <result property="phone" column="phone"/>
        <result property="sex" column="sex"/>
        <result property="nurseName" column="nurse_name"/>
        <result property="nurseId" column="nurse_id"/>
        <result property="age" column="age"/>
        <result property="sfzh" column="sfzh"/>
        <result property="addr" column="addr"/>
@@ -37,7 +39,7 @@
        <result property="pid" column="pid"/>
        <result property="guid" column="guid"/>
        <result property="textParam" column="text_param"/>
        <result property="serviceform" column="serviceform"/>
        <result property="preachform" column="preachform"/>
        <result property="bedNo" column="bed_no"/>
        <result property="sendType" column="send_type"/>
        <result property="taskName" column="task_name"/>
@@ -55,15 +57,50 @@
        <result property="libtemplatename" column="libtemplatename"/>
        <result property="libtemplateid" column="libtemplateid"/>
        <result property="openid" column="openid"/>
        <result property="longSendTime" column="long_send_time"/>
        <result property="serviceType" column="service_type"/>
        <result property="score" column="score"/>
        <result property="submit" column="submit"/>
        <result property="drname" column="drname"/>
        <result property="drcode" column="drcode"/>
        <result property="starttime" column="starttime"/>
        <result property="endtime" column="endtime"/>
        <result property="leavehospitaldistrictcode" column="leavehospitaldistrictcode"/>
        <result property="leavehospitaldistrictname" column="leavehospitaldistrictname"/>
        <result property="excep" column="excep"/>
        <result property="remark" column="remark"/>
        <result property="suggest" column="suggest"/>
        <result property="sendstate" column="sendstate"/>
    </resultMap>
    <resultMap type="com.smartor.domain.ServiceSubtaskCount" id="ServiceSubtaskResult2">
        <result property="month" column="month"/>
        <result property="serviceType" column="service_type"/>
        <result property="subTaskId" column="subTaskId"/>
    </resultMap>
    <sql id="selectServiceSubtaskVo">
        select id,
               hosp_type,
               suggest,
               sendstate,
               endtime,
               nurse_id,
               nurse_name,
               starttime,
               submit,
               drname,
               excep,
               drcode,
               long_send_time,
               openid,
               remark,
               service_type,
               libtemplateid,
               libtemplatename,
               hospno,
               score,
               phone,
               sex,
               age,
@@ -95,7 +132,7 @@
               pid,
               guid,
               text_param,
               serviceform,
               preachform,
               bed_no,
               send_type,
               task_name,
@@ -108,18 +145,29 @@
               admindate,
               deptname,
               stop_state,
               leavehospitaldistrictcode,
               leavehospitaldistrictname,
               diagname
        from service_subtask
    </sql>
    <select id="selectServiceSubtaskList" parameterType="com.smartor.domain.ServiceSubtask" resultMap="ServiceSubtaskResult">
    <select id="selectServiceSubtaskList" parameterType="com.smartor.domain.ServiceSubtaskVO"
            resultMap="ServiceSubtaskResult">
        <include refid="selectServiceSubtaskVo"/>
        <where>
            del_flag=0
            <if test="sendname != null  and sendname != ''">and sendname like concat('%', #{sendname}, '%')</if>
            <if test="phone != null  and phone != ''">and phone = #{phone}</if>
            <if test="leavehospitaldistrictcode != null  and leavehospitaldistrictcode != ''">and
                leavehospitaldistrictcode = #{leavehospitaldistrictcode}
            </if>
            <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">and
                leavehospitaldistrictname = #{leavehospitaldistrictname}
            </if>
            <if test="sex != null  and sex != ''">and sex = #{sex}</if>
            <if test="age != null ">and age = #{age}</if>
            <if test="submit != null ">and submit = #{submit}</if>
            <if test="serviceType != null ">and service_type = #{serviceType}</if>
            <if test="patid != null ">and patid = #{patid}</if>
            <if test="sfzh != null  and sfzh != ''">and sfzh = #{sfzh}</if>
            <if test="addr != null  and addr != ''">and addr = #{addr}</if>
@@ -130,6 +178,27 @@
            <if test="templatename != null  and templatename != ''">and templatename like concat('%', #{templatename},
                '%')
            </if>
            <if test="startOutHospTime != null">
                AND date_format(endtime,'%y%m%d') &gt;= date_format(#{startOutHospTime},'%y%m%d')
            </if>
            <if test="endOutHospTime != null">
                AND date_format(endtime,'%y%m%d') &lt;= date_format(#{endOutHospTime},'%y%m%d')
            </if>
            <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
                AND leavehospitaldistrictcode IN
                <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
                         close=")">
                    #{leavehospitaldistrictcode}
                </foreach>
            </if>
            <if test=" leaveldeptcodes != null and leaveldeptcodes.size()>0">
                AND deptcode IN
                <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
                         close=")">
                    #{leaveldeptcode}
                </foreach>
            </if>
            <if test="senddate != null ">and senddate = #{senddate}</if>
            <if test="senduuid != null  and senduuid != ''">and senduuid = #{senduuid}</if>
            <if test="result != null  and result != ''">and result = #{result}</if>
@@ -138,12 +207,13 @@
            <if test="exrecallcount != null ">and exrecallcount = #{exrecallcount}</if>
            <if test="pulltime != null ">and pulltime = #{pulltime}</if>
            <if test="deptcode != null  and deptcode != ''">and deptcode = #{deptcode}</if>
            <if test="deptname != null  and deptname != ''">and deptname = #{deptname}</if>
            <if test="labelstatus != null ">and labelstatus = #{labelstatus}</if>
            <if test="isupload != null ">and isupload = #{isupload}</if>
            <if test="uploadTime != null ">and upload_time = #{uploadTime}</if>
            <if test="orgid != null  and orgid != ''">and orgid = #{orgid}</if>
            <if test="pid != null ">and pid = #{pid}</if>
            <if test="serviceform != null ">and serviceform = #{serviceform}</if>
            <if test="preachform != null ">and preachform = #{preachform}</if>
            <if test="guid != null  and guid != ''">and guid = #{guid}</if>
            <if test="textParam != null  and textParam != ''">and text_param = #{textParam}</if>
            <if test="bedNo != null">and bed_no = #{bedNo}</if>
@@ -152,11 +222,28 @@
            <if test="operatorNo != null  and operatorNo != ''">and operator_no = #{operatorNo}</if>
            <if test="wechat != null  and wechat != ''">and wechat = #{wechat}</if>
            <if test="hospType != null  and hospType != ''">and hosp_type = #{hospType}</if>
            <if test="libtemplateid != null ">and libtemplateid = #{libtemplateid},</if>
            <if test="libtemplatename != null ">and libtemplatename = #{libtemplatename},</if>
            <if test="openid != null ">and openid = #{openid},</if>
            <if test="libtemplateid != null ">and libtemplateid = #{libtemplateid}</if>
            <if test="libtemplatename != null ">and libtemplatename = #{libtemplatename}</if>
            <if test="openid != null ">and openid = #{openid}</if>
            <if test="longSendTime != null ">and long_send_time = #{longSendTime}</if>
            <if test="sendstate != null ">and sendstate = #{sendstate}</if>
            <if test="drname != null ">and drname = #{drname}</if>
            <if test="drcode != null ">and drcode = #{drcode}</if>
            <if test="starttime != null ">and starttime = #{starttime}</if>
            <if test="endtime != null ">and endtime = #{endtime}</if>
            <if test="excep != null ">and excep = #{excep}</if>
            <if test="nurseId != null ">and nurse_id = #{nurseId}</if>
            <if test="nurseName != null ">and nurse_name = #{nurseName}</if>
            <if test="score != null">and score = #{score}</if>
            <if test="remark != null">and remark = #{remark}</if>
            <if test="suggest != null">and suggest = #{suggest}</if>
        </where>
        order by update_time desc,id desc
        <if test="serviceType != null  and serviceType != ''and serviceType != '2'and serviceType != '3'">order by
            long_send_time desc
        </if>
        <if test="serviceType != null  and serviceType != ''and serviceType == '2'">order by endtime desc</if>
        <if test="serviceType != null  and serviceType != ''and serviceType == '3'">order by admindate desc</if>
        -- order by update_time desc,id desc
    </select>
    <select id="selectServiceSubtaskById" parameterType="Long" resultMap="ServiceSubtaskResult">
@@ -188,7 +275,6 @@
            <if test="pulltime != null">pulltime,</if>
            <if test="deptcode != null">deptcode,</if>
            <if test="labelstatus != null">labelstatus,</if>
            <if test="delFlag != null and delFlag != ''">del_flag,</if>
            <if test="updateBy != null">update_by,</if>
            <if test="updateTime != null">update_time,</if>
            <if test="createBy != null">create_by,</if>
@@ -199,7 +285,7 @@
            <if test="pid != null">pid,</if>
            <if test="guid != null">guid,</if>
            <if test="textParam != null">text_param,</if>
            <if test="serviceform != null">serviceform,</if>
            <if test="preachform != null">preachform,</if>
            <if test="bedNo != null">bed_no,</if>
            <if test="sendType != null  and sendType != ''">send_type,</if>
            <if test="taskName != null  and taskName != ''">task_name,</if>
@@ -217,6 +303,26 @@
            <if test="libtemplatename != null ">libtemplatename,</if>
            <if test="patid != null ">patid,</if>
            <if test="openid != null ">openid,</if>
            <if test="longSendTime != null ">long_send_time,</if>
            <if test="serviceType != null ">service_type,</if>
            <if test="score != null ">score,</if>
            <if test="submit != null ">submit,</if>
            <if test="leavehospitaldistrictcode != null  and leavehospitaldistrictcode != ''">
                leavehospitaldistrictcode,
            </if>
            <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">
                leavehospitaldistrictname,
            </if>
            <if test="drname != null ">drname,</if>
            <if test="drcode != null ">drcode,</if>
            <if test="endtime != null ">endtime,</if>
            <if test="starttime != null ">starttime,</if>
            <if test="excep != null ">excep,</if>
            <if test="nurseName != null ">nurse_name,</if>
            <if test="nurseId != null ">nurse_id,</if>
            <if test="remark != null ">remark,</if>
            <if test="suggest != null ">suggest,</if>
            <if test="sendstate != null ">sendstate,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="sendname != null">#{sendname},</if>
@@ -239,7 +345,6 @@
            <if test="pulltime != null">#{pulltime},</if>
            <if test="deptcode != null">#{deptcode},</if>
            <if test="labelstatus != null">#{labelstatus},</if>
            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
            <if test="updateBy != null">#{updateBy},</if>
            <if test="updateTime != null">#{updateTime},</if>
            <if test="createBy != null">#{createBy},</if>
@@ -250,7 +355,7 @@
            <if test="pid != null">#{pid},</if>
            <if test="guid != null">#{guid},</if>
            <if test="textParam != null">#{textParam},</if>
            <if test="serviceform != null">#{serviceform},</if>
            <if test="preachform != null">#{preachform},</if>
            <if test="bedNo != null">#{bedNo},</if>
            <if test="sendType != null  and sendType != ''">#{sendType},</if>
            <if test="taskName != null  and taskName != ''">#{taskName},</if>
@@ -268,6 +373,26 @@
            <if test="libtemplatename != null ">#{libtemplatename},</if>
            <if test="patid != null ">#{patid},</if>
            <if test="openid != null ">#{openid},</if>
            <if test="longSendTime != null ">#{longSendTime},</if>
            <if test="serviceType != null ">#{serviceType},</if>
            <if test="score != null ">#{score},</if>
            <if test="submit != null ">#{submit},</if>
            <if test="leavehospitaldistrictcode != null  and leavehospitaldistrictcode != ''">
                #{leavehospitaldistrictcode},
            </if>
            <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">
                #{leavehospitaldistrictname},
            </if>
            <if test="drname != null ">#{drname},</if>
            <if test="drcode != null ">#{drcode},</if>
            <if test="endtime != null ">#{endtime},</if>
            <if test="starttime != null ">#{starttime},</if>
            <if test="excep != null ">#{excep},</if>
            <if test="nurseName != null ">#{nurseName},</if>
            <if test="nurseId != null ">#{nurseId},</if>
            <if test="remark != null ">#{remark},</if>
            <if test="suggest != null ">#{suggest},</if>
            <if test="sendstate != null ">#{sendstate},</if>
        </trim>
    </insert>
@@ -294,7 +419,6 @@
            <if test="pulltime != null">pulltime = #{pulltime},</if>
            <if test="deptcode != null">deptcode = #{deptcode},</if>
            <if test="labelstatus != null">labelstatus = #{labelstatus},</if>
            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
            <if test="updateBy != null">update_by = #{updateBy},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="createBy != null">create_by = #{createBy},</if>
@@ -305,7 +429,7 @@
            <if test="pid != null">pid = #{pid},</if>
            <if test="guid != null">guid = #{guid},</if>
            <if test="textParam != null">text_param = #{textParam},</if>
            <if test="serviceform != null">serviceform = #{serviceform},</if>
            <if test="preachform != null">preachform = #{preachform},</if>
            <if test="bedNo != null">bed_no = #{bedNo},</if>
            <if test="sendType != null  and sendType != ''">send_type = #{sendType},</if>
            <if test="taskName != null  and taskName != ''">task_name = #{taskName},</if>
@@ -323,11 +447,31 @@
            <if test="libtemplatename != null ">libtemplatename = #{libtemplatename},</if>
            <if test="patid != null ">patid = #{patid},</if>
            <if test="openid != null ">openid = #{openid},</if>
            <if test="longSendTime != null ">long_send_time = #{longSendTime},</if>
            <if test="sendstate != null ">sendstate = #{sendstate},</if>
            <if test="serviceType != null ">service_type = #{serviceType},</if>
            <if test="score != null ">score = #{score},</if>
            <if test="submit != null ">submit = #{submit},</if>
            <if test="leavehospitaldistrictcode != null  and leavehospitaldistrictcode != ''">leavehospitaldistrictcode
                = #{leavehospitaldistrictcode},
            </if>
            <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">leavehospitaldistrictname
                = #{leavehospitaldistrictname},
            </if>
            <if test="drname != null ">drname = #{drname},</if>
            <if test="drcode != null ">drcode = #{drcode},</if>
            <if test="starttime != null ">starttime = #{starttime},</if>
            <if test="endtime != null ">endtime = #{endtime},</if>
            <if test="excep != null ">excep = #{excep},</if>
            <if test="nurseName != null ">nurse_name=#{nurseName},</if>
            <if test="nurseId != null ">nurse_id=#{nurseId},</if>
            <if test="remark != null ">remark=#{remark},</if>
            <if test="suggest != null ">suggest=#{suggest},</if>
        </trim>
        where id = #{id}
    </update>
    <update id="updateServiceSubtaskByCondition" parameterType="com.smartor.domain.ServiceSubtask">
    <update id="updateServiceSubtaskByPatId" parameterType="com.smartor.domain.ServiceSubtask">
        update service_subtask
        <trim prefix="SET" suffixOverrides=",">
            <if test="sendname != null">sendname = #{sendname},</if>
@@ -350,7 +494,6 @@
            <if test="pulltime != null">pulltime = #{pulltime},</if>
            <if test="deptcode != null">deptcode = #{deptcode},</if>
            <if test="labelstatus != null">labelstatus = #{labelstatus},</if>
            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
            <if test="updateBy != null">update_by = #{updateBy},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="createBy != null">create_by = #{createBy},</if>
@@ -361,7 +504,7 @@
            <if test="pid != null">pid = #{pid},</if>
            <if test="guid != null">guid = #{guid},</if>
            <if test="textParam != null">text_param = #{textParam},</if>
            <if test="serviceform != null">serviceform = #{serviceform},</if>
            <if test="preachform != null">preachform = #{preachform},</if>
            <if test="bedNo != null">bed_no = #{bedNo},</if>
            <if test="sendType != null  and sendType != ''">send_type = #{sendType},</if>
            <if test="taskName != null  and taskName != ''">task_name = #{taskName},</if>
@@ -379,6 +522,101 @@
            <if test="libtemplatename != null ">libtemplatename = #{libtemplatename},</if>
            <if test="patid != null ">patid = #{patid},</if>
            <if test="openid != null ">openid = #{openid},</if>
            <if test="longSendTime != null ">long_send_time = #{longSendTime},</if>
            <if test="sendstate != null ">sendstate = #{sendstate},</if>
            <if test="serviceType != null ">service_type = #{serviceType},</if>
            <if test="score != null ">score = #{score},</if>
            <if test="submit != null ">submit = #{submit},</if>
            <if test="leavehospitaldistrictcode != null  and leavehospitaldistrictcode != ''">leavehospitaldistrictcode
                = #{leavehospitaldistrictcode},
            </if>
            <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">leavehospitaldistrictname
                = #{leavehospitaldistrictname},
            </if>
            <if test="drname != null ">drname = #{drname},</if>
            <if test="drcode != null ">drcode = #{drcode},</if>
            <if test="starttime != null ">starttime = #{starttime},</if>
            <if test="endtime != null ">endtime = #{endtime},</if>
            <if test="excep != null ">excep = #{excep},</if>
            <if test="nurseName != null ">nurse_name=#{nurseName},</if>
            <if test="nurseId != null ">nurse_id=#{nurseId},</if>
            <if test="remark != null ">remark=#{remark},</if>
            <if test="suggest != null ">suggest=#{suggest},</if>
        </trim>
        where patid = #{patid} and taskid = #{taskid}
    </update>
    <update id="updateServiceSubtaskByCondition" parameterType="com.smartor.domain.ServiceSubtask">
        update service_subtask
        <trim prefix="SET" suffixOverrides=",">
            <if test="sendname != null">sendname = #{sendname},</if>
            <if test="phone != null">phone = #{phone},</if>
            <if test="sex != null">sex = #{sex},</if>
            <if test="sendstate != null ">sendstate = #{sendstate},</if>
            <if test="age != null">age = #{age},</if>
            <if test="sfzh != null">sfzh = #{sfzh},</if>
            <if test="addr != null">addr = #{addr},</if>
            <if test="senderdetail != null">senderdetail = #{senderdetail},</if>
            <if test="type != null">type = #{type},</if>
            <if test="taskid != null">taskid = #{taskid},</if>
            <if test="templateid != null">templateid = #{templateid},</if>
            <if test="templatename != null">templatename = #{templatename},</if>
            <if test="senddate != null">senddate = #{senddate},</if>
            <if test="senduuid != null">senduuid = #{senduuid},</if>
            <if test="result != null">result = #{result},</if>
            <if test="finishtime != null">finishtime = #{finishtime},</if>
            <if test="recordid != null">recordid = #{recordid},</if>
            <if test="exrecallcount != null">exrecallcount = #{exrecallcount},</if>
            <if test="pulltime != null">pulltime = #{pulltime},</if>
            <if test="deptcode != null">deptcode = #{deptcode},</if>
            <if test="labelstatus != null">labelstatus = #{labelstatus},</if>
            <if test="updateBy != null">update_by = #{updateBy},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="createBy != null">create_by = #{createBy},</if>
            <if test="createTime != null">create_time = #{createTime},</if>
            <if test="isupload != null">isupload = #{isupload},</if>
            <if test="uploadTime != null">upload_time = #{uploadTime},</if>
            <if test="orgid != null">orgid = #{orgid},</if>
            <if test="pid != null">pid = #{pid},</if>
            <if test="guid != null">guid = #{guid},</if>
            <if test="textParam != null">text_param = #{textParam},</if>
            <if test="preachform != null">preachform = #{preachform},</if>
            <if test="bedNo != null">bed_no = #{bedNo},</if>
            <if test="sendType != null  and sendType != ''">send_type = #{sendType},</if>
            <if test="taskName != null  and taskName != ''">task_name = #{taskName},</if>
            <if test="taskDesc != null  and taskDesc != ''">task_desc = #{taskDesc},</if>
            <if test="operatorNo != null  and operatorNo != ''">operator_no = #{operatorNo},</if>
            <if test="operator != null  and operator != ''">operator = #{operator},</if>
            <if test="hospType != null  and hospType != ''">hosp_type = #{hospType},</if>
            <if test="hospno != null  and hospno != ''">hospno = #{hospno},</if>
            <if test="wechat != null  and wechat != ''">wechat = #{wechat},</if>
            <if test="roomno != null  and roomno != ''">roomno = #{roomno},</if>
            <if test="admindate != null  and admindate != ''">admindate = #{admindate},</if>
            <if test="deptname != null  and deptname != ''">deptname = #{deptname},</if>
            <if test="diagname != null  and diagname != ''">diagname = #{diagname},</if>
            <if test="libtemplateid != null ">libtemplateid = #{libtemplateid},</if>
            <if test="libtemplatename != null ">libtemplatename = #{libtemplatename},</if>
            <if test="patid != null ">patid = #{patid},</if>
            <if test="openid != null ">openid = #{openid},</if>
            <if test="longSendTime != null ">long_send_time = #{longSendTime},</if>
            <if test="serviceType != null ">service_type = #{serviceType},</if>
            <if test="score != null ">score = #{score},</if>
            <if test="submit != null ">submit = #{submit},</if>
            <if test="leavehospitaldistrictcode != null  and leavehospitaldistrictcode != ''">leavehospitaldistrictcode
                = #{leavehospitaldistrictcode},
            </if>
            <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">leavehospitaldistrictname
                = #{leavehospitaldistrictname},
            </if>
            <if test="drname != null ">drname = #{drname},</if>
            <if test="drcode != null ">drcode = #{drcode},</if>
            <if test="endtime != null ">endtime = #{endtime},</if>
            <if test="starttime != null ">starttime = #{starttime},</if>
            <if test="excep != null ">excep = #{excep},</if>
            <if test="nurseName != null ">nurse_name=#{nurseName},</if>
            <if test="nurseId != null ">nurse_id=#{nurseId},</if>
            <if test="remark != null ">remark=#{remark},</if>
            <if test="suggest != null ">suggest=#{suggest},</if>
        </trim>
        where patid = #{patid} and taskid = #{taskid}
    </update>
@@ -391,7 +629,7 @@
        where id = #{id}
    </update>
    <update id="deleteServiceSubtaskByCondition" >
    <update id="deleteServiceSubtaskByCondition">
        update service_subtask
        <trim prefix="SET" suffixOverrides=",">
            del_flag =1
@@ -403,7 +641,9 @@
        select id,
               sendname,
               long_send_time,
               phone,
               suggest,
               sex,
               age,
               openid,
@@ -434,7 +674,7 @@
               pid,
               guid,
               text_param,
               serviceform,
               preachform,
               bed_no,
               send_type,
               task_name,
@@ -447,7 +687,19 @@
               roomno,
               admindate,
               patid,
               service_type,
               deptname,
               score,
               drname,
               drcode,
               starttime,
               endtime,
               leavehospitaldistrictcode,
               leavehospitaldistrictname,
               excep,
               nurse_id,
               nurse_name,
               remark,
               diagname
        FROM service_subtask,
             JSON_TABLE(send_time_slot, '$[*]' COLUMNS (
@@ -459,5 +711,29 @@
          AND del_flag = 0
    </select>
    <!--    获取随访门诊每月的数量-->
    <select id="getSfFzInfoEveryMonth" parameterType="com.smartor.domain.ServiceSubtaskCountReq"
            resultMap="ServiceSubtaskResult2">
        SELECT DATE_FORMAT(st.finishtime, '%Y-%m') AS month,
              st.service_type as service_type,
            st.id as subTaskId,
    COUNT(*) AS count
        FROM
            service_subtask st
            JOIN
            sys_user_dept dd
        ON dep.dept_id = dd.dept_id
        WHERE
            dd.user_id =#{userId}
          AND st.finishtime IS NOT NULL
          and DATE_FORMAT(st.finishtime
            , '%Y-%m') &gt;= #{startTime}
          and DATE_FORMAT(st.finishtime
            , '%Y-%m') &lt;= #{endTime}
        GROUP BY
            month, st.service_type, st.id
        ORDER BY
            month, st.service_type, st.id;
    </select>
</mapper>