Helius
2021-01-15 61073b1c849656e9a3e8097ffe3e658cc72946b6
zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml
@@ -622,38 +622,178 @@
    <select id="selectDemo" resultType="com.matrix.system.app.vo.BusinessesDataShowVo">
        <foreach collection="list" index="index" item="item"   separator="union all"  >
            select
                (select sum(amount) from sys_order_flow where shop_id=34 and <![CDATA[ create_time > '2021-01-13 00:00:00' and create_time < '2021-01-14 00:00:00')]]> totalPay,
                (select sum(amount) from sys_order_flow where shop_id=34 and pay_method not in ('储值卡', '欠款') and flow_type != '退款' and <![CDATA[ create_time > '2021-01-13 00:00:00' and create_time < '2021-01-14 00:00:00')]]> cashPay,
                (select sum(amount) from sys_order_flow where shop_id=34 and pay_method = '储值卡' and flow_type != '退款' and <![CDATA[ create_time > '2021-01-13 00:00:00' and create_time < '2021-01-14 00:00:00' ]]>) cardPay,
                (select sum(amount) from sys_order_flow where shop_id=34 and pay_method = '欠款' and <![CDATA[ create_time > '2021-01-13 00:00:00' and create_time < '2021-01-14 00:00:00' ]]>) arrearsPay,
                (select sum(amount) from sys_order_flow where shop_id=34 and pay_method not in ('储值卡', '欠款') and flow_type = '退款' and <![CDATA[ create_time > '2021-01-13 00:00:00' and create_time < '2021-01-14 00:00:00' ]]>) refundCashPay,
                (select sum(amount) from sys_order_flow where shop_id=34 and pay_method in ('储值卡') and flow_type = '退款' and <![CDATA[ create_time > '2021-01-13 00:00:00' and create_time < '2021-01-14 00:00:00' ]]>) refundCardPay,
                (select sum(amount) 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 sum(amount) 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 sum(amount) 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 sum(amount) 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 sum(amount) 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 sum(amount) 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 sum(a.amount) 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 a.shop_id=34 and <![CDATA[ a.create_time > '2021-01-13 00:00:00' and a.create_time < '2021-01-14 00:00:00']]> ) productAchieve,
                    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 sum(a.amount) 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 a.shop_id=34 and <![CDATA[ a.create_time > '2021-01-13 00:00:00' and a.create_time < '2021-01-14 00:00:00']]> ) cardAchieve,
                (select sum(amount) from sys_order_flow where shop_id=34 and flow_type = '退款' and <![CDATA[ create_time > '2021-01-13 00:00:00' and create_time < '2021-01-14 00:00:00' ]]>) refund,
                (select count(1) from sys_order where shop_id=34 and STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > '2021-01-13 00:00:00' and ORDER_TIME < '2021-01-14 00:00:00' ]]>) perCustomCnt,
                    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 sum(amount) 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 count(1) 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 sum(b.COUNT) from sys_order a inner join sys_order_item b on a.ID=b.ORDER_ID
                    where a.SHOP_ID=34 and a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > '2021-01-13 00:00:00' and ORDER_TIME < '2021-01-14 00:00:00' ]]>) totalSaleCnt,
                    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 sum(e.count * d.GOODS_PRICE) 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.shop_id=34 and a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > '2021-01-13 00:00:00' and ORDER_TIME < '2021-01-14 00:00:00']]>
                    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 sum(b.COUNT * IFNULL(c.price, 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.shop_id=34 and a.STATU in ('已付款', '欠款') and <![CDATA[ORDER_TIME > '2021-01-13 00:00:00' and ORDER_TIME < '2021-01-14 00:00:00']]>
                ) otherCost
                    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 sum(IFNULL(his_consume, 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 sum(IFNULL(free_consume, 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 sum(IFNULL(number_of_people, 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 sum(IFNULL(proj_num, 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 sum(IFNULL(proj_time, 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>