Helius
2021-03-09 8fe37f0f7af3667b60e0f29a1ce8188c08c35bb1
modify
7 files modified
111 ■■■■ changed files
zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java 1 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrder.java 23 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java 4 ●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml 13 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml 18 ●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml 10 ●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml 42 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java
@@ -130,6 +130,7 @@
        SysUsers user = getMe();
        sysOrder.setShopId(user.getShopId());
        sysOrder.setOrderType(SysOrder.ORDER_TYPE_SEAL);
        sysOrder.setIsHasRefund(SysOrder.IS_HAS_REFUND_N);
        //校验订单是否满足结算调价,新订单则保存订单,已有订单则删除后更新
        sysOrder = orderService.checkAndSaveOrder(sysOrder);
        orderService.updateReceiptMoney(sysOrder);
zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrder.java
@@ -185,6 +185,29 @@
     */
    private Long oldOrderId;
    /**
     * 该订单有退款
     */
    public static final Integer IS_HAS_REFUND_Y = 1;
    /**
     * 该订单无退款
     */
    public static final Integer IS_HAS_REFUND_N = 2;
    /**
     * 是否发生退款 1-是 2-否
     */
    private Integer isHasRefund;
    public Integer getIsHasRefund() {
        return isHasRefund;
    }
    public void setIsHasRefund(Integer isHasRefund) {
        this.isHasRefund = isHasRefund;
    }
    public Long getOldOrderId() {
        return oldOrderId;
    }
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
@@ -1268,7 +1268,8 @@
        //原订单设置为退款状态
        SysOrder sourceOrder=new SysOrder();
        sourceOrder.setId(sysOrder.getOldOrderId());
        sourceOrder.setStatu(Dictionary.ORDER_STATU_TK);
        sourceOrder.setIsHasRefund(SysOrder.IS_HAS_REFUND_Y);
//        sourceOrder.setStatu(Dictionary.ORDER_STATU_TK);
        sysOrderDao.update(sourceOrder);
        sysOrder.setId(null);
@@ -1282,6 +1283,7 @@
        sysOrder.setPayTime(now);
        sysOrder.setOrderNo(codeService.getRefundOrderNo());
        sysOrder.setZkTotal(-sysOrder.getZkTotal());
        sysOrder.setOrderType(SysOrder.ORDER_TYPE_REFUND);
        //新增订单
        sysOrderDao.insert(sysOrder);
        //插入明细
zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml
@@ -906,7 +906,18 @@
    <select id="selectUserAchieveByTime" resultType="com.matrix.system.app.vo.UserAchieveVo">
        select
            sale_id id,
            sum(goods_cash) orderCash,
            (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 (date_format(datatime, '%Y-%m-%d') >= date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d') >= date_format(datatime, '%Y-%m-%d'))
            ) orderCash,
            (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 (date_format(datatime, '%Y-%m-%d') >= date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d') >= date_format(datatime, '%Y-%m-%d'))
            ) cash,
            sum(case order_type when '订单' then proj_percentage else 0 end) cardUse,
            sum(IFNULL(his_consume, 0)) hisConsume,
            sum(IFNULL(free_consume, 0)) freeConsume,
zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml
@@ -709,7 +709,7 @@
                    </if>
                ) refund,
                (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>
@@ -718,7 +718,7 @@
                    </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} ]]>
                    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>
@@ -732,7 +732,7 @@
                    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} ]]>
                    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>
@@ -743,7 +743,7 @@
                (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} ]]>
                    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>
@@ -806,7 +806,7 @@
            #{item.beginTime} dataTime,
            (select shop_short_name from sys_shop_info where id=#{shopId}) shopName,
            (select sum(total) shouldPay from sys_order
                where STATU in ('已付款', '欠款') and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
                where STATU in ('已付款', '欠款') and orderType=1 and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
                <if test="shopId != null">
                    and shop_id=#{shopId}
                </if>
@@ -869,13 +869,13 @@
            </if>
            ) refund,
            (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>
            ) 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} ]]>
            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>
@@ -886,7 +886,7 @@
            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} ]]>
            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>
@@ -894,7 +894,7 @@
            (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} ]]>
            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>
zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml
@@ -63,7 +63,8 @@
        beatuyName,
        pay_time,
        company_id,
        orderType
        orderType,
        is_has_refund
        )
        VALUES (
        #{id},
@@ -86,7 +87,8 @@
        #{beatuyName},
        #{payTime},
        #{companyId},
        #{orderType}
        #{orderType},
        #{isHasRefund}
        )
    </insert>
@@ -143,10 +145,12 @@
            <if test="cashPay != null and cashPay  !='' ">
                cash_Pay = #{cashPay},
            </if>
            <if test="payTime != null  ">
                pay_time = #{payTime},
            </if>
            <if test="isHasRefund != null  ">
                is_has_refund = #{isHasRefund},
            </if>
        </set>
        WHERE id=#{id}
zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml
@@ -285,7 +285,7 @@
        <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>
@@ -304,7 +304,7 @@
            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 <![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>
@@ -313,7 +313,7 @@
                    </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} ]]>
                    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>
@@ -334,7 +334,7 @@
            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 <![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>
@@ -369,7 +369,7 @@
                        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} ]]>
                        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>
@@ -380,7 +380,7 @@
                    (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} ]]>
                        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>
@@ -406,7 +406,7 @@
                        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} ]]>
                        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>
@@ -417,7 +417,7 @@
                    (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} ]]>
                        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>
@@ -452,7 +452,7 @@
                        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} ]]>
                        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>
@@ -463,7 +463,7 @@
                    (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} ]]>
                        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>
@@ -528,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,
@@ -560,14 +569,14 @@
    <select id="selectStaffCashAchieve" resultType="java.util.TreeMap">
        select
        <foreach collection="list" index="index" item="item"   separator=","  >
            (select ifnull(sum(case t3 when '现金业绩' then card_cash else 0 end),0)
            (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 a.beault_id=#{staffId}
                </if>
            ) as t${index}
        </foreach>
        from area where id=1
    </select>
@@ -575,8 +584,9 @@
    <select id="selectStaffCardAchieve" resultType="java.util.TreeMap">
        select
        <foreach collection="list" index="index" item="item"   separator=","  >
            (select ifnull(sum(case t3 when '划扣业绩' then consume else 0 end),0)
            (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 a.beault_id=#{staffId}