935090232@qq.com
2021-01-15 e971ea090aa1f320f3c3f78c3a2a8d50f16dd4d0
zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml
@@ -618,4 +618,185 @@
            order by a.time desc
        ) a
    </select>
    <select id="selectApiBusinessData" resultType="com.matrix.system.app.vo.BusinessesDataShowVo">
        <foreach collection="list" index="index" item="item"   separator="union all"  >
            select
                #{item.beginTime} dataTime,
                (select IFNULL(sum(amount),0) from sys_order_flow
                    where <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
                    <if test="shopId != null">
                        and shop_id=#{shopId}
                    </if>
                    <if test="companyId != null">
                        and company_id=#{companyId}
                    </if>
                    )totalPay,
                (select IFNULL(sum(amount),0) from sys_order_flow
                    where pay_method not in ('储值卡', '欠款') and flow_type != '退款' and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
                    <if test="shopId != null">
                        and shop_id=#{shopId}
                    </if>
                    <if test="companyId != null">
                        and company_id=#{companyId}
                    </if>
                    ) cashPay,
                (select IFNULL(sum(amount),0) from sys_order_flow
                    where pay_method = '储值卡' and flow_type != '退款' and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
                    <if test="shopId != null">
                        and shop_id=#{shopId}
                    </if>
                    <if test="companyId != null">
                        and company_id=#{companyId}
                    </if>
                    ) cardPay,
                (select IFNULL(sum(amount),0) from sys_order_flow
                    where pay_method = '欠款' and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
                    <if test="shopId != null">
                        and shop_id=#{shopId}
                    </if>
                    <if test="companyId != null">
                        and company_id=#{companyId}
                    </if>
                    ) arrearsPay,
                (select IFNULL(sum(amount),0) from sys_order_flow
                    where pay_method not in ('储值卡', '欠款') and flow_type = '退款' and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
                    <if test="shopId != null">
                        and shop_id=#{shopId}
                    </if>
                    <if test="companyId != null">
                        and company_id=#{companyId}
                    </if>
                    ) refundCashPay,
                (select IFNULL(sum(amount),0) from sys_order_flow
                    where pay_method in ('储值卡') and flow_type = '退款' and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
                    <if test="shopId != null">
                        and shop_id=#{shopId}
                    </if>
                    <if test="companyId != null">
                        and company_id=#{companyId}
                    </if>
                    ) refundCardPay,
                (select IFNULL(sum(amount),0) from sys_order_flow a
                    inner join sys_order_item b on a.order_id=b.ORDER_ID
                    inner join shopping_goods c on b.goods_id=c.id
                    where c.good_type='家居产品' and <![CDATA[ a.create_time > #{item.beginTime} and a.create_time < #{item.endTime}]]>
                    <if test="shopId != null">
                        and a.shop_id=#{shopId}
                    </if>
                    <if test="companyId != null">
                        and a.company_id=#{companyId}
                    </if>
                    ) productAchieve,
                (select IFNULL(sum(amount),0) from sys_order_flow a
                    inner join sys_order_item b on a.order_id=b.ORDER_ID
                    inner join shopping_goods c on b.goods_id=c.id
                    where c.good_type!='家居产品' and <![CDATA[ a.create_time > #{item.beginTime} and a.create_time < #{item.endTime}]]>
                    <if test="shopId != null">
                        and a.shop_id=#{shopId}
                    </if>
                    <if test="companyId != null">
                        and a.company_id=#{companyId}
                    </if>
                    ) cardAchieve,
                (select IFNULL(sum(amount),0) from sys_order_flow where flow_type = '退款' and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
                    <if test="shopId != null">
                        and shop_id=#{shopId}
                    </if>
                    <if test="companyId != null">
                        and company_id=#{companyId}
                    </if>
                ) refund,
                (select IFNULL(count(1),0) from sys_order
                    where STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
                    <if test="shopId != null">
                        and shop_id=#{shopId}
                    </if>
                    <if test="companyId != null">
                        and company_id=#{companyId}
                    </if>
                    ) perCustomCnt,
                (select IFNULL(sum(b.COUNT),0) from sys_order a inner join sys_order_item b on a.ID=b.ORDER_ID
                    where a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
                    <if test="shopId != null">
                        and shop_id=#{shopId}
                    </if>
                    <if test="companyId != null">
                        and company_id=#{companyId}
                    </if>
                    ) totalSaleCnt,
                (select IFNULL(sum(e.count * d.GOODS_PRICE),0) from sys_order a
                    inner join sys_out_store b on a.id=b.ORDER_ID
                    inner join sys_out_store_item c on b.id=c.OUT_STORE_ID
                    inner join sys_store_info d on c.store_id = d.ID
                    inner join sys_order_item e on a.ID=e.ORDER_ID
                    inner join shopping_goods f on e.goods_id=f.id and f.good_type='家居产品'
                    where a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
                    <if test="shopId != null">
                        and a.shop_id=#{shopId}
                    </if>
                    <if test="companyId != null">
                        and a.company_id=#{companyId}
                    </if>
                ) goodsCost,
                (select IFNULL(sum(b.COUNT * IFNULL(c.price, 0)),0) from sys_order a
                    inner join sys_order_item b on a.ID=b.ORDER_ID
                    inner join shopping_goods c on c.good_type != '家居产品' and b.goods_id=c.id
                    where a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
                    <if test="shopId != null">
                        and a.shop_id=#{shopId}
                    </if>
                    <if test="companyId != null">
                        and a.company_id=#{companyId}
                    </if>
                ) otherCost,
                (select IFNULL(sum(IFNULL(his_consume, 0)),0) from achieve_new
                    where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime}]]>
                    <if test="shopId != null">
                        and shop_id=#{shopId}
                    </if>
                    <if test="companyId != null">
                        and company_id=#{companyId}
                    </if>
                    ) consumePay,
                (select IFNULL(sum(IFNULL(free_consume, 0)),0) from achieve_new
                    where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime}]]>
                    <if test="shopId != null">
                        and shop_id=#{shopId}
                    </if>
                    <if test="companyId != null">
                        and company_id=#{companyId}
                    </if>
                    ) freeConsumePay,
                (select IFNULL(sum(IFNULL(number_of_people, 0)),0) from achieve_new
                    where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime}]]>
                    <if test="shopId != null">
                        and shop_id=#{shopId}
                    </if>
                    <if test="companyId != null">
                        and company_id=#{companyId}
                    </if>
                    ) peopleCnt,
                (select IFNULL(sum(IFNULL(proj_num, 0)),0) from achieve_new
                    where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime}]]>
                    <if test="shopId != null">
                        and shop_id=#{shopId}
                    </if>
                    <if test="companyId != null">
                        and company_id=#{companyId}
                    </if>
                    ) projConsumeCnt,
                (select IFNULL(sum(IFNULL(proj_time, 0)),0) from achieve_new
                    where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime}]]>
                    <if test="shopId != null">
                        and shop_id=#{shopId}
                    </if>
                    <if test="companyId != null">
                        and company_id=#{companyId}
                    </if>
                    ) timeLength
            from dual
        </foreach>
    </select>
</mapper>