Helius
2021-03-11 a72aa4bb793ec765892406c842039a71b33215b1
zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml
@@ -285,13 +285,202 @@
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select IFNULL(count(1),0) from sys_order
         where STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
         where STATU in ('已付款', '欠款') and orderType=1 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>
         ) as t${index}
      </foreach>
      from area where id=1
   </select>
   <select id="selectCustomGoodsCnt" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select case a.perCustomCnt when 0 then 0 else a.totalSaleCnt/a.perCustomCnt end from (
            select
            (select IFNULL(count(1),0) from sys_order
               where STATU in ('已付款', '欠款') and orderType=1 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 a.orderType=1 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 from dual
            ) a
         ) as t${index}
      </foreach>
      from area where id=1
   </select>
   <select id="selectPerCustomPrice" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select case a.perCustomCnt when 0 then 0 else a.totalPay/a.perCustomCnt end from (
         select
         (select IFNULL(count(1),0) from sys_order
         where STATU in ('已付款', '欠款') and orderType=1 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(amount),0) from sys_order_flow
         where <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]> and pay_method!='欠款'
         <if test="shopId != null">
            and shop_id=#{shopId}
         </if>
         <if test="companyId != null">
            and company_id=#{companyId}
         </if>
         ) totalPay from dual
         ) a
         ) as t${index}
      </foreach>
      from area where id=1
   </select>
   <select id="selectCost" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select a.goodsCost+a.otherCost end from (
            select
               (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 a.orderType=1 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 a.orderType=1 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 from dual
            ) a
         ) as t${index}
      </foreach>
      from area where id=1
   </select>
   <select id="selectGrossProfit" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
            select a.totalPay - a.goodsCost - a.otherCost end from (
               select
               (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 a.orderType=1 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 a.orderType=1 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(amount),0) from sys_order_flow
                  where <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]> and pay_method!='欠款'
                  <if test="shopId != null">
                     and shop_id=#{shopId}
                  </if>
                  <if test="companyId != null">
                     and company_id=#{companyId}
                  </if>
               ) totalPay from dual
            ) a
         ) as t${index}
      </foreach>
      from area where id=1
   </select>
   <select id="selectGrossProfitRate" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
            select case a.totalPay when 0 then 0 else  (a.totalPay - a.goodsCost - a.otherCost)/a.totalPay end from (
               select
               (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 a.orderType=1 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 a.orderType=1 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(amount),0) from sys_order_flow
                  where <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]> and pay_method!='欠款'
                  <if test="shopId != null">
                     and shop_id=#{shopId}
                  </if>
                  <if test="companyId != null">
                     and company_id=#{companyId}
                  </if>
               ) totalPay from dual
            ) a
         ) as t${index}
      </foreach>
      from area where id=1
@@ -339,9 +528,18 @@
         select
            #{item.beginTime} time,
            (select ifnull(sum(ifnull(card_cash,0) + ifnull(consume,0)),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) orderAmount,
            (select ifnull(sum(case t3 when '现金业绩' then card_cash else 0 end),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) cashAmount,
            (select ifnull(sum(case t3 when '划扣业绩' then consume else 0 end),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) cardAmount,
            (select ifnull(sum(case t3 when '划扣业绩' then consume else 0 end),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) cardUseAmount,
            (select ifnull(sum(case b.pay_method when '现金' then goods_cash else 0 end),0)
               from achieve_new a
               inner join sys_order_item b on a.order_item_id=b.ID
            where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) cashAmount,
            (select ifnull(sum(case b.pay_method when '划扣' then goods_cash else 0 end),0)
               from achieve_new a
               inner join sys_order_item b on a.order_item_id=b.ID
            where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) cardAmount,
            (select ifnull(sum(case b.pay_method when '划扣' then goods_cash else 0 end),0)
               from achieve_new a
               inner join sys_order_item b on a.order_item_id=b.ID
            where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) cardUseAmount,
            (select ifnull(sum(ifnull(proj_percentage, 0)),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]> and order_type='订单') goodsAmount,
            (select ifnull(sum(ifnull(his_consume, 0)),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) hisConsume,
            (select ifnull(sum(ifnull(free_consume, 0)),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) freeConsume,
@@ -356,14 +554,12 @@
   <select id="selectStaffOrderAchieve" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select
            IFNULL(SUM((IFNULL(a.card_cash,0) +IFNULL(a.proj_cash,0) + IFNULL(a.goods_cash,0))),0)
         from  achieve_new a
         where   <![CDATA[datatime > #{item.beginTime}   and  datatime < #{item.endTime} ]]>
         <if test="staffId != null and staffId != 0">
            and sale_id=#{staffId}
         </if>
         (select ifnull(sum(ifnull(card_cash,0) + ifnull(consume,0)),0)
            from achieve_new a
            where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>
            <if test="staffId != null and staffId != 0">
               and a.beault_id=#{staffId}
            </if>
         ) as t${index}
      </foreach>
@@ -373,16 +569,14 @@
   <select id="selectStaffCashAchieve" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select
         IFNULL(SUM((IFNULL(a.proj_cash,0))),0)
         from  achieve_new a
         where   <![CDATA[datatime > #{item.beginTime}   and  datatime < #{item.endTime} ]]>
         (select ifnull(sum(case b.pay_method when '现金' then goods_cash else 0 end),0)
            from achieve_new a
            inner join sys_order_item b on a.order_item_id=b.ID
         where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>
         <if test="staffId != null and staffId != 0">
            and sale_id=#{staffId}
            and a.beault_id=#{staffId}
         </if>
         ) as t${index}
      </foreach>
      from area where id=1
   </select>
@@ -390,13 +584,12 @@
   <select id="selectStaffCardAchieve" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select
         IFNULL(SUM((IFNULL(a.card_cash,0))),0)
         from  achieve_new a
         where   <![CDATA[datatime > #{item.beginTime}   and  datatime < #{item.endTime} ]]>
         (select ifnull(sum(case b.pay_method when '划扣' then goods_cash else 0 end),0)
            from achieve_new a
            inner join sys_order_item b on a.order_item_id=b.ID
         where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>
         <if test="staffId != null and staffId != 0">
            and sale_id=#{staffId}
            and a.beault_id=#{staffId}
         </if>
         ) as t${index}
@@ -407,13 +600,11 @@
   <select id="selectStaffGoodsAchieve" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select
         IFNULL(SUM((IFNULL(a.goods_cash,0))),0)
         from  achieve_new a
         where   <![CDATA[datatime > #{item.beginTime}   and  datatime < #{item.endTime} ]]>
         (select ifnull(sum(ifnull(proj_percentage, 0)),0)
            from achieve_new a
            where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]> and order_type='订单'
         <if test="staffId != null and staffId != 0">
            and sale_id=#{staffId}
            and a.beault_id=#{staffId}
         </if>
         ) as t${index}
      </foreach>
@@ -471,14 +662,11 @@
   <select id="selectStaffCommissionAchieve" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select
         IFNULL(SUM((IFNULL(a.proj_percentage,0))),0)
         from  achieve_new a
         where   <![CDATA[datatime > #{item.beginTime}   and  datatime < #{item.endTime} ]]>
         <if test="staffId != null and staffId != 0">
            and beault_id=#{staffId}
         </if>
         (select ifnull(sum(ifnull(proj_percentage, 0)),0) from achieve_new a
            where  <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]> and order_type='服务单'
            <if test="staffId != null and staffId != 0">
               and a.beault_id=#{staffId}
            </if>
         ) as t${index}
      </foreach>
      from area where id=1