From ef31d1678d820175f47c3645704ddecf171265ae Mon Sep 17 00:00:00 2001 From: dougang <78125310@kidgrow.com> Date: Sat, 14 Nov 2020 15:16:08 +0800 Subject: [PATCH] 增加C端筛查医院和机构功能 --- kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderDetailMapper.xml | 358 +++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 318 insertions(+), 40 deletions(-) diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderDetailMapper.xml b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderDetailMapper.xml index c85a2ae..c419e42 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderDetailMapper.xml +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderDetailMapper.xml @@ -4,7 +4,7 @@ <mapper namespace="com.kidgrow.oprationcenter.mapper.ProductOrderDetailMapper"> <!--定义查询列--> <sql id="Column_List"> - * + DISTINCT * </sql> <!--sql查询片段--> @@ -12,72 +12,350 @@ <where> <!--查询条件自行添加--> is_del=0 - <if test="id != null and id !=''"> - and id = #{id} + <if test="p.id != null and p.id !=''"> + and id = #{p.id} </if> - <if test="orderId != null and orderId !=''"> - and order_id = #{orderId} + <if test="p.orderId != null and p.orderId !=''"> + and order_id = #{p.orderId} </if> - <if test="proId != null and proId !=''"> - and pro_id = #{proId} + <if test="p.proId != null and p.proId !=''"> + and pro_id = #{p.proId} </if> - <if test="proName != null and proName !=''"> - and pro_name = #{proName} + <if test="p.proName != null and p.proName !=''"> + and pro_name = #{p.proName} </if> - <if test="isShare != null and isShare !=''"> - and is_share = #{isShare} + <if test="p.isShare != null and p.isShare !=''"> + and is_share = #{p.isShare} </if> - <if test="isDel != null and isDel !=''"> - and is_del = #{isDel} + <if test="p.isDel != null and p.isDel !=''"> + and is_del = #{p.isDel} </if> - <if test="ailightCount != null and ailightCount !=''"> - and ailight_count = #{ailightCount} + <if test="p.ailightCount != null and p.ailightCount !=''"> + and ailight_count = #{p.ailightCount} </if> - <if test="recordCount != null and recordCount !=''"> - and record_count = #{recordCount} + <if test="p.recordCount != null and p.recordCount !=''"> + and record_count = #{p.recordCount} </if> - <if test="proBegintime != null and proBegintime !=''"> - and pro_begintime = #{proBegintime} + <if test="p.proBegintime != null and p.proBegintime !=''"> + and pro_begintime = #{p.proBegintime} </if> - <if test="proEndtime != null and proEndtime !=''"> - and pro_endtime = #{proEndtime} + <if test="p.proEndtime != null and p.proEndtime !=''"> + and pro_endtime = #{p.proEndtime} </if> - <if test="enabled != null and enabled !=''"> - and enabled = #{enabled} + <if test="p.enabled != null and p.enabled !=''"> + and enabled = #{p.enabled} </if> - <if test="createUserId != null and createUserId !=''"> - and create_user_id = #{createUserId} + <if test="p.createUserId != null and p.createUserId !=''"> + and create_user_id = #{p.createUserId} </if> - <if test="createUserName != null and createUserName !=''"> - and create_user_name = #{createUserName} + <if test="p.createUserName != null and p.createUserName !=''"> + and create_user_name = #{p.createUserName} </if> - <if test="updateUserId != null and updateUserId !=''"> - and update_user_id = #{updateUserId} + <if test="p.updateUserId != null and p.updateUserId !=''"> + and update_user_id = #{p.updateUserId} </if> - <if test="updateTime != null and updateTime !=''"> - and update_time = #{updateTime} + <if test="p.updateTime != null and p.updateTime !=''"> + and update_time = #{p.updateTime} </if> - <if test="updateUserName != null and updateUserName !=''"> - and update_user_name = #{updateUserName} + <if test="p.updateUserName != null and p.updateUserName !=''"> + and update_user_name = #{p.updateUserName} </if> - <if test="createTime != null and createTime !=''"> - and create_time = #{createTime} + <if test="p.createTime != null and p.createTime !=''"> + and create_time = #{p.createTime} </if> - </where> + </where> </sql> - <!--定义根据-ProductOrderDetail当作查询条件返回对象--> - <select id="findByObject" resultType="com.kidgrow.oprationcenter.model.ProductOrderDetail"> - select <include refid="Column_List"/> + <select id="findByObject" resultType="com.kidgrow.oprationcenter.model.ProductOrderDetail"> + select + <include refid="Column_List"/> from product_order_detail <include refid="where"/> order by id desc + limit 1 </select> <!--定义根据-ProductOrderDetail当作查询条件返回对象集合--> <select id="findList" resultType="com.kidgrow.oprationcenter.model.ProductOrderDetail"> - select <include refid="Column_List"/> + select + <include refid="Column_List"/> from product_order_detail + <include refid="where"/> order by id desc </select> + <!--sql查询片段--> + <sql id="wherelimit"> + <where> + <!--查询条件自行添加--> + DE.is_del=0 + <if test="p.id != null and p.id !=''"> + and id = #{p.id} + </if> + <if test="p.proType != null and p.proType !=''"> + and DE.pro_type = #{p.proType} + </if> + <if test="p.enabled != null and p.enabled !=''"> + and DE.enabled = #{p.enabled} + </if> + <if test="p.hospitalName != null and p.hospitalName !=''"> + and PRO.hospital_name like concat ('%',#{p.hospitalName},'%') + </if> + <if test="p.proName != null and p.proName !=''"> + and DE.pro_name like concat ('%',#{p.proName},'%') + </if> + <if test="p.createTime != null and p.createTime !='' and p.updateTime != null and p.updateTime !=''"> + and (DE.create_time between #{p.createTime} and #{p.updateTime}) + </if> + <if test="p.startTime!= null and p.startTime !=''"> + and DE.create_time >= #{p.startTime} + </if> + <if test="p.endTime!= null and p.endTime !=''"> + and DE.create_time <= #{p.endTime} + </if> +<!-- <include refid="com.kidgrow.oprationcenter.mapper.SysProductMapper.Role_Organization"></include>--> + </where> + </sql> + <select id="groupProductDetail" resultType="com.kidgrow.oprationcenter.vo.GroupProductDetail"> + select + COUNT(DE.pro_id) pro_count, + max(DE.pro_name) pro_name + from product_order_detail AS DE + <include refid="wherelimit"/> + GROUP BY DE.pro_id + order by pro_count desc + </select> + <select id="getTypeByUser" resultType="com.kidgrow.oprationcenter.vo.ProductOrderJoinDetail" parameterType="long"> + SELECT + pod.* + FROM + `product_order` po + INNER JOIN product_order_detail pod ON po.id = pod.order_id + WHERE + po.hospital_id = #{id} + AND NOW() >= pod.pro_begintime + AND NOW() <=pod.pro_endtime + AND pod.enabled = 1 + AND pod.is_del = 0 + AND po.enabled = 1 + AND po.is_del = 0 + ORDER BY + pod.pro_type desc,pod.pro_endtime desc + </select> + <!--sql查询片段--> + <sql id="whereforall"> + <where> + <!--查询条件自行添加--> + DE.is_del=0 and DE.ailight_count>=0 and DE.pro_begintime <=now() and DE.pro_endtime >=now() and + DE.enabled=1 + <if test="p.hospitalId != null and p.hospitalId !=''"> + and PRO.hospital_id = #{p.hospitalId} + </if> + </where> + </sql> + <!--查询产品的购买记录--> + <select id="findAllList" resultType="com.kidgrow.oprationcenter.vo.ProductOrderJoinDetail"> + SELECT + DE.id, + DE.ailight_count, + DE.record_count, + DE.is_share, + DE.pro_begintime, + DE.pro_endtime, + PRO.hospital_Id, + PRO.department_id, + DE.pro_type + FROM + product_order_detail DE + LEFT JOIN product_order PRO ON DE.order_id = PRO.id + <include refid="whereforall"/> + order by + DE.pro_endtime ASC, + DE.pro_begintime ASC, + DE.id asc + </select> + + <select id="getEnabledCount" resultType="int" parameterType="long"> + SELECT + COUNT(*) +FROM + product_order_record +WHERE +pro_type=0 AND is_del=0 AND enabled=1 AND + order_id IN ( + SELECT + id + FROM + product_order +WHERE + department_id = #{departmentId}) + </select> + <select id="oprationChart" resultType="int" parameterType="int"> + <if test="datatype==0"> + -- 试用审核 + SELECT count(*) FROM product_order_detail WHERE enabled=0 AND is_del=0 and pro_type=0 + </if> + <if test="datatype==1"> + -- 套餐总量 + SELECT count(*) FROM sys_product WHERE is_del=0 and enabled=1 + </if> + <if test="datatype==2"> + -- 未处理用户反馈 + SELECT count(*) FROM sys_feedback WHERE is_del=0 and enabled=0 + </if> + <if test="datatype==3"> + -- 未处理数据需求 + SELECT count(*) FROM data_need WHERE is_del=0 and enabled=0 + </if> + </select> + + <select id="productOrderChart" resultType="com.kidgrow.oprationcenter.vo.OrderChartVo"> + <if test="p.datatype==1"> + -- 按年统计 + SELECT COUNT(t.id) ccount,t.units FROM + (select id,DATE_FORMAT(contract_time,'%Y/%m') units,contract_time from product_order + <include refid="whereorderchart"/> + ) AS t + GROUP BY t.units + </if> + <if test="p.datatype==2"> + -- 按月统计 + SELECT COUNT(t.id) ccount,t.units FROM + (select id,DATE_FORMAT(contract_time,'%Y') units,contract_time from product_order + <include refid="whereorderchart"/> + ) AS t + GROUP BY t.units + </if> + </select> + <sql id="whereorderchart"> + <where> + <!--查询条件自行添加--> + is_del=0 and enabled=1 + <if test="p.startTime != null and p.endTime !=''"> + and contract_time between #{p.startTime} and #{p.endTime} + </if> + </where> + </sql> + <select id="proCountChart" resultType="com.kidgrow.oprationcenter.vo.OrderChartVo"> + SELECT + count( pro_id ) ccount, + pro_name units +FROM + product_order_record +WHERE + is_del = 0 + AND enabled = 1 + AND pro_id IN ( SELECT id FROM sys_product WHERE is_del = 0 AND enabled = 1 ) +GROUP BY + pro_id, + pro_name +ORDER BY + ccount DESC + LIMIT 10 + </select> + <select id="departmentProductDetail" resultType="com.kidgrow.oprationcenter.model.ProductOrderDetail"> + SELECT + * +FROM + product_order_detail +WHERE + order_id IN ( SELECT id FROM product_order WHERE hospital_id = #{hospitalId} AND department_id = #{departmentId} AND is_del = 0 AND enabled = 1 ) + AND is_del = 0 + AND enabled = 1 +ORDER BY id DESC + </select> + <select id="getUserdProduct" resultType="int"> + SELECT + sum(total) + FROM + ( + SELECT + count(*) total + FROM + `product_order` order_order + LEFT JOIN product_order_record record ON order_order.id = record.order_id + WHERE + order_order.hospital_id = #{hospitalId} + AND order_order.department_id = #{departmentId} + and record.pro_id!=1000000000000000000 + AND order_order.is_del = 0 + AND order_order.enabled = 1 + AND record.is_del = 0 + AND record.enabled = 1 + AND record.pro_endtime>now() + UNION ALL + SELECT + count(*) total + FROM + `product_order` order_order + LEFT JOIN product_order_record record ON order_order.id = record.order_id + WHERE + order_order.hospital_id = #{hospitalId} + AND record.is_share = 1 + and record.pro_id!=1000000000000000000 + AND order_order.is_del = 0 + AND order_order.enabled = 1 + AND record.is_del = 0 + AND record.enabled = 1 + AND record.pro_endtime>now() + ) cc + </select> + <select id="productEndList" resultType="com.kidgrow.oprationcenter.vo.ProductEndVo"> + SELECT + id, + pro_id, + pro_begintime beginTime, + MIN( T2.pro_endtime ) endTime, + MIN( T2.ailight_count ) ailight_count, + pro_type, + pro_name, + T2.hospital_id, + hospital_name, + T2.department_id, + department_name + FROM + ( + SELECT + details.id id, + details.pro_id, + details.pro_begintime pro_begintime, + details.pro_endtime pro_endtime, + details.ailight_count, + details.pro_name pro_name, + details.pro_type pro_type, + orders.hospital_id hospital_id, + orders.hospital_name hospital_name, + orders.department_id department_id, + orders.department_name department_name + FROM + product_order_detail details + LEFT JOIN product_order orders ON orders.id = details.order_id + WHERE + details.is_del = 0 + AND details.enabled = 1 + AND orders.is_del = 0 + AND orders.enabled = 1 + AND pro_endtime BETWEEN now() AND DATE_ADD(NOW(), INTERVAL ${monthPar} MONTH) + AND ailight_count BETWEEN 1 AND ${aiCountPar} + AND pro_type=1 + ORDER BY + ailight_count, + pro_endtime + ) AS T2 + GROUP BY + department_id, + hospital_id, + department_name, + hospital_name, + id, + pro_id, + pro_type, + pro_name, + ailight_count, + pro_endtime, + pro_begintime + ORDER BY + ailight_count, + pro_endtime, + department_id + </select> </mapper> \ No newline at end of file -- Gitblit v1.8.0