jyy
2021-03-04 4dab41eef4ffde0c2631fbc7147cd2eee3cd0780
优化订单业绩
1 files added
14 files modified
795 ■■■■ changed files
zq-erp/src/main/java/com/matrix/TestClass.java 4 ●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/constance/Dictionary.java 5 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/bean/AchieveNew.java 96 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderItem.java 14 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java 10 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java 12 ●●●● 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/java/com/matrix/system/hive/statistics/AchieveAction.java 43 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml 123 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/readme-jyy 12 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/static/templates/vipInfoImport.xls patch | view | raw | blame | history
zq-erp/src/main/resources/static/templates/vipProjUse.xls patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/hive-erp/order/orderXq-form.html 157 ●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html 186 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/orderXq-form.html 129 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/TestClass.java
@@ -1,9 +1,7 @@
package com.matrix;
import java.io.FileWriter;
import java.io.IOException;
import java.math.BigDecimal;
public class TestClass {
    public static void main(String[] args) throws IOException {
@@ -19,7 +17,7 @@
//            printer.printRecord(cells);
//        }
//        printer.flush();
//        printer.close();
//        printer.close();
        long t2 = System.currentTimeMillis();
        System.out.println("CSV: " + (t2 - t1));
    }
zq-erp/src/main/java/com/matrix/system/constance/Dictionary.java
@@ -55,10 +55,7 @@
     * 支付方式-现金支付
     */
    String PAY_TYPE_MOENY = "现金";
    /**
     * 支付方式-现金支付
     */
    String PAY_TYPE_MOENY_CARD = "会员卡";
    /**
     * 支付方式-卡支付
     */
zq-erp/src/main/java/com/matrix/system/hive/bean/AchieveNew.java
@@ -72,7 +72,13 @@
     * 客户id
     */
    private Long  vipId;
    /**
     * 购买业绩
     */
    private Double  goodsCash;
    
    /**
     * 赠送消耗
@@ -85,30 +91,7 @@
     */
    private Double  hisConsume;
            
    /**
     * 划扣金额 从卡中划扣钱买东西
     */
    private Double  consume;
    /**
     * 卡项,套餐,充值,开会籍卡
     */
    private Double  cardCash;
    /**
     * 现金单次,购买项目的业绩
     */
    @Deprecated
    private Double  projCash;
    /**
     * 现金产品,购买家居产品的钱
     */
    private Double  goodsCash;
            
    
    /**
@@ -156,11 +139,12 @@
     * 总金额
     */
    private Double  zkTotal;
    /**
     * 公司id
     */
    private Long companyId;
    private String  t1;
            
    
@@ -168,13 +152,11 @@
    /**
     * 岗位业绩
     */
    private String  t3;
    /**
     * 业绩类型
     */
    private String  achieveType;
    private String  t4;
            
    
@@ -254,16 +236,22 @@
    private Date  endTime;
    /**
     * 分配的业绩金额
     */
    private Double achieveMoney;
    private String goodsNo;
    private String goodsName;
    private String type;
    private String payMethod;
    public String getPayMethod() {
        return payMethod;
    }
    public void setPayMethod(String payMethod) {
        this.payMethod = payMethod;
    }
    public String getType() {
        return type;
@@ -313,13 +301,6 @@
        this.companyId = companyId;
    }
    public Double getAchieveMoney() {
        return achieveMoney;
    }
    public void setAchieveMoney(Double achieveMoney) {
        this.achieveMoney = achieveMoney;
    }
    public Date getBeginTime() {
        return beginTime;
@@ -405,24 +386,8 @@
    public void setHisConsume(Double hisConsume) {
        this.hisConsume = hisConsume;
    }
    public Double getConsume() {
        return consume;
    }
    public void setConsume(Double consume) {
        this.consume = consume;
    }
    public Double getCardCash() {
        return cardCash;
    }
    public void setCardCash(Double cardCash) {
        this.cardCash = cardCash;
    }
    public Double getProjCash() {
        return projCash;
    }
    public void setProjCash(Double projCash) {
        this.projCash = projCash;
    }
    public Double getGoodsCash() {
        return goodsCash;
    }
@@ -483,12 +448,15 @@
    public void setT2(String t2) {
        this.t2 = t2;
    }
    public String getT3() {
        return t3;
    public String getAchieveType() {
        return achieveType;
    }
    public void setT3(String t3) {
        this.t3 = t3;
    public void setAchieveType(String achieveType) {
        this.achieveType = achieveType;
    }
    public String getT4() {
        return t4;
    }
zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderItem.java
@@ -91,7 +91,8 @@
    
    
    //页面参数使用
    /**
     * 付款方式
     */
@@ -182,14 +183,15 @@
    /**
     * 业绩计算
     */
    private List<AchieveNew> achaeveList;
    private List<AchieveNew> achieveList;
    public List<AchieveNew> getAchaeveList() {
        return achaeveList;
    public List<AchieveNew> getAchieveList() {
        return achieveList;
    }
    public void setAchaeveList(List<AchieveNew> achaeveList) {
        this.achaeveList = achaeveList;
    public void setAchieveList(List<AchieveNew> achieveList) {
        this.achieveList = achieveList;
    }
    public String getPayMethodDetail() {
zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java
@@ -1,15 +1,15 @@
package com.matrix.system.hive.dao;
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.matrix.core.pojo.PaginationVO;
import com.matrix.system.app.vo.OrderDetailAchieveItemVo;
import com.matrix.system.app.vo.RankingVo;
import com.matrix.system.app.vo.UserAchieveVo;
import com.matrix.system.hive.bean.AchieveNew;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
@@ -73,4 +73,6 @@
    List<AchieveNew> selectOrderItemAchieveByOrderId(Long orderId);
    List<RankingVo> selectStaffSaleAchieveRanking(@Param("record") AchieveNew achieveNew);
    int deleteByOrderId(@Param("orderId") Long orderId);
}
zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java
@@ -213,10 +213,10 @@
        if (CollectionUtils.isNotEmpty(pageOrder.getItems())) {
            for (SysOrderItem orderItem : pageOrder.getItems()) {
                if (orderItem != null && CollectionUtils.isNotEmpty(orderItem.getAchaeveList())) {
                if (orderItem != null && CollectionUtils.isNotEmpty(orderItem.getAchieveList())) {
                    for (AchieveNew achieveNew : orderItem.getAchaeveList()) {
                        if (achieveNew !=null   && achieveNew.getT1()!=null) {
                    for (AchieveNew achieveNew : orderItem.getAchieveList()) {
                        if (achieveNew !=null   && achieveNew.getGoodsCash()!=null) {
                            buildAchieve(pageOrder,  orderItem, achieveNew);
                            // 新增美疗师业绩
                            achieveNewList.add(achieveNew);
@@ -301,17 +301,17 @@
            // 本日
            case 1 :
                break;
                // 昨日
            // 昨日
            case 2:
                startTime = DateUtil.previousNDate(startTime, 1);
                endTime = startTime;
                break;
                // 本月
            // 本月
            case 3:
                calendar.set(Calendar.DAY_OF_MONTH, 1);
                startTime = calendar.getTime();
                break;
                // 上月
            // 上月
            case 4:
                calendar.add(Calendar.MONTH, -1);
                calendar.set(Calendar.DAY_OF_MONTH, 1);
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
@@ -252,8 +252,6 @@
    /**
     * 取消订单
     * 本方法无法退回多次不同卡项收款的订单
     *
     * @param id
     * @return
     */
@@ -1212,7 +1210,7 @@
        orderItem.setIsFree(Dictionary.FLAG_NO);
        orderItem.setPrice(czVo.getBjmoney());
        orderItem.setStatus(Dictionary.ORDER_STATU_YFK);
        orderItem.setAchaeveList(czVo.getAchaeveList());
        orderItem.setAchieveList(czVo.getAchaeveList());
        orderItemDao.insert(orderItem);
        List<SysOrderItem> items = new ArrayList<>();
        items.add(orderItem);
zq-erp/src/main/java/com/matrix/system/hive/statistics/AchieveAction.java
@@ -12,13 +12,14 @@
import com.matrix.system.common.tools.ResponseHeadUtil;
import com.matrix.system.hive.action.util.QueryUtil;
import com.matrix.system.hive.bean.AchieveNew;
import com.matrix.system.hive.bean.SysOrder;
import com.matrix.system.hive.bean.SysOrderItem;
import com.matrix.system.hive.dao.AchieveNewDao;
import com.matrix.system.hive.plugin.util.CollectionUtils;
import com.matrix.system.hive.service.AchieveNewService;
import com.matrix.system.hive.service.SysOrderItemService;
import com.matrix.system.hive.service.SysOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -48,6 +49,9 @@
    @Autowired
    private SysOrderItemService sysOrderItemService;
    @Autowired
    private AchieveNewDao achieveNewDao;
    /**
     * 门店每日单据明细表
@@ -90,7 +94,7 @@
        String title = "每日单据明细";
        orderSheet.setSheetName(title);
        orderSheet.setTitle(title);
        String[] header = {"年", "月", "日",   "订单类型", "订单编号", "会员级别", "姓名", "项目名称", "总金额", "卡项", "现金单次", "现金产品", "划扣", "本金消耗", "赠消", "提成", "顾问", "美疗师", "人头", "项目个数", "项目时间", "门店"};
        String[] header = {"年", "月", "日",   "订单类型", "订单编号", "会员级别", "姓名", "项目名称", "总金额", "现金产品", "划扣", "本金消耗", "赠消", "提成", "顾问", "美疗师", "人头", "项目个数", "项目时间", "门店"};
        orderSheet.setHeaders(header);
        SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
        if(!AppConstance.ZONGDIAN.equals(sysUsers.getShopName())){
@@ -112,10 +116,7 @@
                temp.add(item.getVipName());
                temp.add(item.getProName());
                temp.add(item.getZkTotal());
                temp.add(item.getCardCash());
                temp.add(item.getProjCash());
                temp.add(item.getGoodsCash());
                temp.add(item.getConsume());
                temp.add(item.getHisConsume());
                temp.add(item.getFreeConsume());
                temp.add(item.getProjPercentage());
@@ -149,27 +150,17 @@
    @RequestMapping(value = "/add")
    @ResponseBody
    @Transactional
    public AjaxResult add(@RequestBody List<AchieveNew> list) {
        SysOrder order = sysOrderService.findById(list.get(0).getOrderId());
        List<SysOrderItem> orderItems = sysOrderItemService.findByOrderId(order.getId());
        orderItems.forEach(item -> {
            List<AchieveNew> achieveNewList = new ArrayList<>();
            for(AchieveNew achieveNew : list) {
                achieveNewService.removeById(achieveNew.getId());
                achieveNew.setId(null);
                achieveNew.setConsume(null);
                achieveNew.setCardCash(null);
                if (achieveNew.getOrderItemId().equals(item.getId())) {
                    achieveNewList.add(achieveNew);
                }
            }
            item.setAchaeveList(achieveNewList);
        });
        order.setItems(orderItems);
        achieveNewService.addAchaeveByOrder(order);
        return AjaxResult.buildSuccessInstance("保存成功");
        if (CollectionUtils.isNotEmpty(list)) {
            //删除原业绩
            achieveNewDao.deleteByOrderId(list.get(0).getOrderId());
            //插入新业绩
            achieveNewDao.batchInsert(list);
            return AjaxResult.buildSuccessInstance("保存成功");
        } else {
            return AjaxResult.buildFailInstance("未找到业绩数据");
        }
    }
}
zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml
@@ -17,9 +17,6 @@
        <result property="vipId" column="vip_id" />
        <result property="freeConsume" column="free_consume" />
        <result property="hisConsume" column="his_consume" />
        <result property="consume" column="consume" />
        <result property="cardCash" column="card_cash" />
        <result property="projCash" column="proj_cash" />
        <result property="goodsCash" column="goods_cash" />
        <result property="projNum" column="proj_num" />
        <result property="numberOfPeople" column="number_of_people" />
@@ -28,10 +25,9 @@
        <result property="remark" column="remark" />
        <result property="orderType" column="order_type" />
        <result property="projPercentage" column="proj_percentage" />
        <result property="achieveMoney" column="achieveMoney" />
        <result property="t1" column="t1" />
        <result property="t2" column="t2" />
        <result property="t3" column="t3" />
        <result property="achieveType" column="achieveType" />
        <result property="t4" column="t4" />
        <result property="t5" column="t5" />
        <result property="t6" column="t6" />
@@ -53,7 +49,7 @@
        <result property="goodsNo" column="goodsNo" />
        <result property="goodsName" column="goodsName" />
        <result property="zkPrice" column="zkPrice" />
        <result property="payMethod" column="pay_method" />
    </resultMap>
@@ -68,16 +64,10 @@
        d.level_name,
        c.vip_name,
        e.name as pro_name,
        a.card_cash,
        (IFNULL(a.card_cash,0) +IFNULL(a.proj_cash,0) + IFNULL(a.goods_cash,0)
        ) as zk_total,
        a.proj_cash,
        (IFNULL(a.goods_cash,0)) as zk_total,
        a.goods_cash,
        a.card_cash,
        a.consume,
        a.his_consume,
        a.free_consume,
        a.achieveMoney,
        f.su_name meiliao,
        g.su_name guwen,
        a.proj_percentage,
@@ -208,12 +198,8 @@
        YEAR (a.datatime) year,
        MONTH (a.datatime) month,
        DAY(a.datatime) day,
        SUM(a.card_cash) as card_cash ,
        SUM((IFNULL(a.card_cash,0) +IFNULL(a.proj_cash,0) + IFNULL(a.goods_cash,0) ) )as zk_total,
        SUM(a.proj_cash) as proj_cash,
        SUM( IFNULL(a.goods_cash,0)  )as zk_total,
        SUM(a.goods_cash) as goods_cash,
        SUM(a.card_cash) as card_cash,
        SUM(a.consume) as consume,
        SUM(a.his_consume) as his_consume,
        SUM(a.free_consume) as free_consume,
        SUM(a.proj_percentage) as proj_percentage,
@@ -289,9 +275,6 @@
        <result property="vipId" column="vip_id" />
        <result property="freeConsume" column="free_consume" />
        <result property="hisConsume" column="his_consume" />
        <result property="consume" column="consume" />
        <result property="cardCash" column="card_cash" />
        <result property="projCash" column="proj_cash" />
        <result property="goodsCash" column="goods_cash" />
        <result property="projNum" column="proj_num" />
        <result property="numberOfPeople" column="number_of_people" />
@@ -300,10 +283,10 @@
        <result property="remark" column="remark" />
        <result property="orderType" column="order_type" />
        <result property="projPercentage" column="proj_percentage" />
        <result property="achieveMoney" column="achieveMoney" />
        <result property="t1" column="t1" />
        <result property="t2" column="t2" />
        <result property="t3" column="t3" />
        <result property="achieveType" column="achieveType" />
        <result property="t4" column="t4" />
        <result property="t5" column="t5" />
        <result property="t6" column="t6" />
@@ -326,9 +309,6 @@
        vip_id,
        free_consume,
        his_consume,
        consume,
        card_cash,
        proj_cash,
        goods_cash,
        proj_num,
        number_of_people,
@@ -337,10 +317,10 @@
        remark,
        order_type,
        proj_percentage,
        achieveMoney,
        t1,
        t2,
        t3,
        achieveType,
        t4,
        t5,
        t6,
@@ -363,9 +343,6 @@
        #{item.vipId},
        #{item.freeConsume},
        #{item.hisConsume},
        #{item.consume},
        #{item.cardCash},
        #{item.projCash},
        #{item.goodsCash},
        #{item.projNum},
        #{item.numberOfPeople},
@@ -374,10 +351,10 @@
        #{item.remark},
        #{item.orderType},
        #{item.projPercentage},
        #{item.achieveMoney},
        #{item.t1},
        #{item.t2},
        #{item.t3},
        #{item.achieveType},
        #{item.t4},
        #{item.t5},
        #{item.t6},
@@ -441,18 +418,8 @@
                test="(record.hisConsume!=null and record.hisConsume!='') or  (record.hisConsume!='' and record.hisConsume==0)  ">
                and his_consume = #{record.hisConsume}
            </if>
            <if
                test="(record.consume!=null and record.consume!='') or  (record.consume!='' and record.consume==0)  ">
                and consume = #{record.consume}
            </if>
            <if
                test="(record.cardCash!=null and record.cardCash!='') or  (record.cardCash!='' and record.cardCash==0)  ">
                and card_cash = #{record.cardCash}
            </if>
            <if
                test="(record.projCash!=null and record.projCash!='') or  (record.projCash!='' and record.projCash==0)  ">
                and proj_cash = #{record.projCash}
            </if>
            <if
                test="(record.goodsCash!=null and record.goodsCash!='') or  (record.goodsCash!='' and record.goodsCash==0)  ">
                and goods_cash = #{record.goodsCash}
@@ -494,8 +461,8 @@
                and t2 = #{record.t2}
            </if>
            <if
                test="(record.t3!=null and record.t3!='') or  (record.t3!='' and record.t3==0)  ">
                and t3 = #{record.t3}
                test="(record.achieveType!=null and record.achieveType!='') or  (record.achieveType!='' and record.achieveType==0)  ">
                and achieveType = #{record.achieveType}
            </if>
            <if
                test="(record.t4!=null and record.t4!='') or  (record.t4!='' and record.t4==0)  ">
@@ -589,15 +556,9 @@
            <if test="_parameter.containsKey('hisConsume')">
                his_consume = #{hisConsume},
            </if>
            <if test="_parameter.containsKey('consume')">
                consume = #{consume},
            </if>
            <if test="_parameter.containsKey('cardCash')">
                card_cash = #{cardCash},
            </if>
            <if test="_parameter.containsKey('projCash')">
                proj_cash = #{projCash},
            </if>
            <if test="_parameter.containsKey('goodsCash')">
                goods_cash = #{goodsCash},
            </if>
@@ -622,17 +583,15 @@
            <if test="_parameter.containsKey('projPercentage')">
                proj_percentage = #{projPercentage},
            </if>
            <if test="_parameter.containsKey('achieveMoney')">
                achieveMoney = #{achieveMoney},
            </if>
            <if test="_parameter.containsKey('t1')">
                t1 = #{t1},
            </if>
            <if test="_parameter.containsKey('t2')">
                t2 = #{t2},
            </if>
            <if test="_parameter.containsKey('t3')">
                t3 = #{t3},
            <if test="_parameter.containsKey('achieveType')">
                achieveType = #{achieveType},
            </if>
            <if test="_parameter.containsKey('t4')">
                t4 = #{t4},
@@ -711,15 +670,8 @@
            <if test="record.hisConsume != null ">
                his_consume = #{record.hisConsume},
            </if>
            <if test="record.consume != null ">
                consume = #{record.consume},
            </if>
            <if test="record.cardCash != null ">
                card_cash = #{record.cardCash},
            </if>
            <if test="record.projCash != null ">
                proj_cash = #{record.projCash},
            </if>
            <if test="record.goodsCash != null ">
                goods_cash = #{record.goodsCash},
            </if>
@@ -744,17 +696,15 @@
            <if test="record.projPercentage != null ">
                proj_percentage = #{record.projPercentage},
            </if>
            <if test="record.achieveMoney != null ">
                achieveMoney = #{record.achieveMoney},
            </if>
            <if test="record.t1 != null and record.t1 != '' ">
                t1 = #{record.t1},
            </if>
            <if test="record.t2 != null and record.t2 != '' ">
                t2 = #{record.t2},
            </if>
            <if test="record.t3 != null and record.t3 != '' ">
                t3 = #{record.t3},
            <if test="record.achieveType != null and record.achieveType != '' ">
                achieveType = #{record.achieveType},
            </if>
            <if test="record.t4 != null and record.t4 != '' ">
                t4 = #{record.t4},
@@ -795,6 +745,11 @@
        DELETE FROM achieve_new
        where 1=1
        <include refid="where_sql"></include>
    </delete>
    <delete id="deleteByOrderId">
        DELETE FROM achieve_new where order_id=#{orderId}
    </delete>
@@ -868,7 +823,7 @@
            sum(b.hisConsume) his_consume
        from sys_vip_info a
        inner join (
            select vip_id,datatime, sum(a.free_consume) freeConsume, sum(a.his_consume) hisConsume, sum(IFNULL(goods_cash, 0) + IFNULL(card_cash, 0)) buyConsume from achieve_new a group by vip_id
            select vip_id,datatime, sum(a.free_consume) freeConsume, sum(a.his_consume) hisConsume, sum(IFNULL(goods_cash, 0) )) buyConsume from achieve_new a group by vip_id
        ) b on a.ID = b.vip_id
        inner join (
            select vip_id, count(1) cnt from (
@@ -915,7 +870,7 @@
        select count(1)
        from sys_vip_info a
        inner join (
        select vip_id,datatime, sum(a.free_consume) freeConsume, sum(a.his_consume) hisConsume, sum(IFNULL(goods_cash, 0) + IFNULL(card_cash, 0)) buyConsume from achieve_new a group by vip_id
        select vip_id,datatime, sum(a.free_consume) freeConsume, sum(a.his_consume) hisConsume, sum(IFNULL(goods_cash, 0)  ) buyConsume from achieve_new a group by vip_id
        ) b on a.ID = b.vip_id
        inner join (
        select vip_id, count(1) cnt from (
@@ -951,8 +906,7 @@
    <select id="selectUserAchieveByTime" resultType="com.matrix.system.app.vo.UserAchieveVo">
        select
            sale_id id,
            sum(case t3 when '现金业绩' then card_cash else 0 end) orderCash,
            sum(case t3 when '划扣业绩' then consume else 0 end) cash,
            sum(goods_cash) orderCash,
            sum(case order_type when '订单' then proj_percentage else 0 end) cardUse,
            sum(IFNULL(his_consume, 0)) hisConsume,
            sum(IFNULL(free_consume, 0)) freeConsume,
@@ -965,7 +919,7 @@
    <select id="selectApiOrderItemAchieve" resultType="com.matrix.system.app.vo.OrderDetailAchieveItemVo">
        select
            b.su_name name,
            IFNULL(a.card_cash, 0) + IFNULL(a.proj_cash, 0) + IFNULL(a.goods_cash, 0) achieve
            IFNULL(a.goods_cash, 0) achieve
        from achieve_new a
        inner join sys_users b on (a.beault_id=b.su_id or a.sale_id = b.su_id)
        where a.order_item_id=#{itemId} and order_type = '订单'
@@ -1000,7 +954,7 @@
        select
            b.su_name name,
            b.su_id id,
            sum(IFNULL(a.free_consume,0) + IFNULL(a.his_consume, 0) + IFNULL(a.consume, 0)) amount,
            sum(IFNULL(a.free_consume,0) + IFNULL(a.his_consume, 0) ) amount,
            c.shop_short_name shopName
        from achieve_new a
        inner join sys_users b on a.beault_id=b.su_id
@@ -1033,7 +987,8 @@
            b.code goodsNo,
            b.name goodsName,
            c.su_name meiliao,
            d.count*d.zk_price zk_total
            d.count*d.zk_price zk_total,
            d.pay_method
        from achieve_new a
        left join shopping_goods b on a.shopping_goods_id=b.id
        left join sys_users c on a.beault_id=c.su_id
@@ -1046,7 +1001,7 @@
        b.su_name name,
        b.su_id id,
        b.su_photo photo,
        sum(ifnull(card_cash,0)) amount,
        sum(ifnull(goods_cash,0)) amount,
        c.shop_short_name shopName
        from achieve_new a
        inner join sys_users b on a.beault_id=b.su_id
@@ -1076,7 +1031,7 @@
        select
            b.shop_short_name name,
            b.SHOP_IMAG photo,
            sum(IFNULL(a.consume,0) + IFNULL(a.card_cash,0)) amount
            sum(IFNULL(a.goods_cash,0)) amount
        from achieve_new a
        left join sys_shop_info b on a.shop_id=b.ID and shop_type!=1
        <where>
zq-erp/src/main/resources/readme-jyy
New file
@@ -0,0 +1,12 @@
删除
cardCash
projCash
只留下
goodsCash
产品现金业绩和划扣业绩consume
重构订单,收款,退款等方法不要共用逻辑
修改t3为业绩类型
ALTER TABLE `achieve_new`
CHANGE COLUMN `t3` `achieveType` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL AFTER `t2`;
zq-erp/src/main/resources/static/templates/vipInfoImport.xls
Binary files differ
zq-erp/src/main/resources/static/templates/vipProjUse.xls
Binary files differ
zq-erp/src/main/resources/templates/views/admin/hive-erp/order/orderXq-form.html
@@ -133,14 +133,14 @@
                </el-col>
            </el-row>
            <el-row type="flex" justify="center" style="margin: 20px;">
                <el-button size="medium" type="primary">打印</el-button>
                <el-button size="medium" type="primary" @click="printf">打印</el-button>
            </el-row>
        </el-aside>
        <el-main style="background-color: white; margin-right: 15px; margin-left: 15px; padding: 20px 30px;">
            <el-tabs v-model="activeName" @tab-click="handleClick">
                <el-tab-pane label="订单明细" name="first">
                    <el-row>
                        <el-button size="mini" type="primary" @click="openPayMoneyDialog" v-if="isRefund">提交退款</el-button>
                        <el-button size="mini" type="primary" @click="openPayMoneyDialog" v-if="isRefund">提交退款<span v-if="totalRefund"> ¥ {{totalRefund}}</span></el-button>
                        <el-button size="mini" type="danger" @click="isRefund = false" v-if="isRefund">取消</el-button>
                        <el-button size="mini" type="primary" @click="isRefund = true" v-if="order.statu == '已付款' && !isRefund">退款</el-button>
                    </el-row>
@@ -180,6 +180,8 @@
                            </el-table-column>
                            <el-table-column  label="小计" :formatter="calOrderTotalFormatter">
                            </el-table-column>
                            <el-table-column  label="支付方式"  prop="payMethod">
                            </el-table-column>
                        </el-table>
                    </el-row>
                    <el-row v-show="isRefund">
@@ -214,12 +216,12 @@
                            </el-table-column>
                            <el-table-column label="退款单价">
                                <template slot-scope="scope">
                                    <el-input v-model="scope.row.refundPrice" v-if="scope.row.count > 0"></el-input>
                                    <el-input @change="calRefund" v-model="scope.row.refundPrice" v-if="scope.row.count > 0"></el-input>
                                </template>
                            </el-table-column>
                            <el-table-column label="退款数量">
                                <template slot-scope="scope">
                                    <el-input v-model.number="scope.row.refundCount" v-if="scope.row.count > 0"></el-input>
                                    <el-input @change="calRefund" v-model.number="scope.row.refundCount" v-if="scope.row.count > 0"></el-input>
                                </template>
                            </el-table-column>
                            <el-table-column label="是否退库存" align="center">
@@ -308,15 +310,19 @@
                                label="收款">
                        </el-table-column>
                        <el-table-column
                                prop="payMethod"
                                label="支付方式">
                        </el-table-column>
                        <el-table-column
                                prop="t3"
                                label="业绩类型">
                            <template slot-scope="scope">
                                <el-select v-model="scope.row.t3" placeholder="请选择业绩类型">
                                <el-select v-model="scope.row.achieveType" placeholder="请选择业绩类型">
                                    <el-option
                                            v-for="item in achieveTypeList"
                                            :key="item.key"
                                            :key="item.value"
                                            :label="item.value"
                                            :value="item.key">
                                            :value="item.value">
                                    </el-option>
                                </el-select>
                            </template>
@@ -325,7 +331,7 @@
                                prop="achieve"
                                label="业绩">
                            <template slot-scope="scope">
                                <el-input v-model="scope.row.t1"></el-input>
                                <el-input  @input="checkAchieveMoney" v-model="scope.row.goodsCash"></el-input>
                            </template>
                        </el-table-column>
                        <el-table-column
@@ -354,9 +360,9 @@
                                           size="mini"
                                           @click="delAchieve(scope.$index, scope.row)">删除
                                </el-button>
                                <el-tooltip content="分享业绩" placement="top">
                                    <el-button @click="shareAchieve(scope.$index, scope.row)" icon="el-icon-share"
                                               size="mini" type="primary"></el-button>
                                <el-tooltip content="分享业绩" placement="top" v-if="!scope.row.isShare">
                                    <el-button  @click="shareAchieve(scope.$index, scope.row)" icon="el-icon-share"
                                                size="mini" type="primary"></el-button>
                                </el-tooltip>
                            </template>
                        </el-table-column>
@@ -379,6 +385,10 @@
                                prop="flowContent"
                                label="交易内容"
                                width="300">
                        </el-table-column>
                        <el-table-column
                                prop="createTime"
                                label="交易时间">
                        </el-table-column>
                        <el-table-column
                                prop="flowType"
@@ -449,9 +459,9 @@
            </el-col>
        </el-row>
<!--        <el-row style="text-align: center; margin: 20px 0 10px 0">-->
<!--            <el-checkbox v-model="printPaper">打印小票</el-checkbox>-->
<!--        </el-row>-->
        <!--        <el-row style="text-align: center; margin: 20px 0 10px 0">-->
        <!--            <el-checkbox v-model="printPaper">打印小票</el-checkbox>-->
        <!--        </el-row>-->
        <el-row style="text-align: center; margin: 10px 0 0 0">
            <el-button type="primary" @click="confirmSubmit">确认收款</el-button>
@@ -478,21 +488,14 @@
            activeName : "first",
            circleUrl : "https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png",
            userList : [],
            achieveTypeList : [
                {
                    "key" : "现金业绩",
                    "value" : "现金业绩"
                },{
                    "key" : "划扣业绩",
                    "value" : "划扣业绩"
                },
            ],
            achieveTypeList : [],
            orderItems : [],
            achieveItems : [],
            flowItems : [],
            payMethodItems : [],
            isRefund : false,
            isReturnAchieve : false,
            totalRefund : "",
            payMethods: [{
                value: '现金支付',
                img: '/images/pay/cash.png',
@@ -541,10 +544,28 @@
        created : function() {
            let _this = this;
            this.orderParam = /*[[${orderParam}]]*/
            this.queryOrderDetailData(this.orderParam);
                this.queryOrderDetailData(this.orderParam);
            // 业绩类型
            AjaxProxy.requst({
                app: _this,
                url: basePath + '/admin/customerDictionary/getListByParentCode/YJLX',
                callback: function (data) {
                    _this.achieveTypeList = data.rows;
                }
            });
        },
        methods : {
            calRefund() {
                let _this = this;
                var total = 0;
                _this.orderItems.forEach(item => {
                    if (item.refundPrice && item.refundCount) {
                        total += parseFloat(item.refundPrice * item.refundCount);
                    }
                })
                _this.totalRefund = total;
            },
            queryOrderDetailData(param) {
                let _this = this;
                AjaxProxy.requst({
@@ -682,7 +703,7 @@
                    }
                    if(_this.order.zkTotal - _this.order.refund - _this.order.arrears < total) {
                        this.$message.warning("退款金额不能超过收取金额");
                        this.$message.warning("退款金额不能超过收款金额");
                        return false;
                    }
                    _this.data.flows = flows;
@@ -839,34 +860,76 @@
            },
            saveAchieve() {
                let _this = this;
                AjaxProxy.requst({
                    app: _this,
                    data: _this.achieveItems,
                    contentType: 'application/json',
                    url: basePath + '/admin/achieve/add',
                    callback: function (data) {
                        _this.$message.success(data.info);
                    }
                });
            },
            shareAchieve(index, row) {
                var row2 = JSON.parse(JSON.stringify(row));
                row2.id = null;
                row2.isShare = true;
                this.achieveItems.push(row2);
            },
            delAchieve(index, row) {
                let _this = this;
                if (row.id) {
                if(_this.checkAchieveMoney()){
                    AjaxProxy.requst({
                        app: _this,
                        url: basePath + '/admin/achieve/del?id=' + row.id,
                        data: _this.achieveItems,
                        contentType: 'application/json',
                        url: basePath + '/admin/achieve/add',
                        callback: function (data) {
                            _this.$message.success(data.info);
                        }
                    });
                }
            },
            shareAchieve(index, row) {
                var row2 = JSON.parse(JSON.stringify(row));
                row2.id = null;
                row2.isShare = true;
                this.achieveItems.splice(index+1,0,row2);
                this.calculationAchieve();
            },
            //业绩均分订单金额
            calculationAchieve(){
                console.log("计算业绩");
                let jsqMap={};
                this.achieveItems.forEach(achieve=>{
                    key=achieve.achieveType+achieve.orderItemId;
                    if(!jsqMap[key]){
                        jsqMap[key]=1;
                    }else{
                        jsqMap[key]++;
                    }
                });
                this.achieveItems.forEach(achieve=>{
                    key=achieve.achieveType+achieve.orderItemId;
                    achieve.goodsCash=(achieve.zkTotal/jsqMap[key]).toFixed(2);
                });
            },
            //校验业绩是否大于订单收款金额
            checkAchieveMoney(){
                console.log("校验业绩是否大于订单收款金额");
                let jsqMap={};
                let isOk=true;
                this.achieveItems.forEach(achieve=>{
                    if(!isNaN(achieve.goodsCash)  ){
                        key=achieve.achieveType+achieve.orderItemId;
                        if(!jsqMap[key]){
                            jsqMap[key]=parseFloat(achieve.goodsCash);
                        }else{
                            jsqMap[key]=jsqMap[key]+parseFloat(achieve.goodsCash);
                        }
                        if(jsqMap[key]>achieve.zkTotal) {
                            this.$message.error("【"+achieve.goodsName + "】业绩分配金额大于支付金额");
                            isOk = false;
                            return;
                        }
                    }else{
                        this.$message.error("【"+achieve.goodsName + "】业绩分配金额请填写数字");
                        isOk=false;
                        return;
                    }
                });
                console.log("isOk",isOk);
                return isOk;
            },
            //删除业绩
            delAchieve(index, row) {
                let _this = this;
                _this.achieveItems.splice(index, 1);
                this.calculationAchieve();
            },
            checkAchieveIsDel(items) {
                var achieveIds = [];
@@ -886,7 +949,7 @@
                var id = this.order.id;
                layer.open({
                    type: 2,
                    title: "打印服务单",
                    title: "打印订单",
                    area: ['250px', '550px'],
                    maxmin: true,
                    content: [basePath + '/admin/redirect/hive/beautySalon/print-order?id=' + id]
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html
@@ -288,6 +288,22 @@
                        </template>
                    </el-table-column>
                    <el-table-column
                            label="支付方式"
                            width="130">
                        <template slot-scope="scope">
                            <el-select  v-model="scope.row.payMethod"
                                        placeholder="请选择支付方式">
                                <el-option
                                        v-for="item in itemSimplePayMethods"
                                        :key="item.value"
                                        :label="item.label"
                                        :value="item.value"
                                        :disabled="item.disabled">
                                </el-option>
                            </el-select>
                        </template>
                    </el-table-column>
                    <el-table-column
                            label="小计">
                        <template slot-scope="scope">
                            {{scope.row.zkPrice * scope.row.count }}
@@ -377,7 +393,7 @@
        </el-col>
    </el-row>
    <!-- 业绩设置 -->
    <el-drawer
            title="业绩设置"
            :visible.sync="drawer"
@@ -414,24 +430,10 @@
                                prop="orderItem.payMoney"
                                label="收款">
                        </el-table-column>
                        <el-table-column
                                label="岗位业绩" width="150">
                            <template slot-scope="scope">
                                <el-select v-model="scope.row.t3" placeholder="请选择岗位业绩">
                                    <el-option
                                            v-for="item in achievePostList"
                                            :key="item.value"
                                            :label="item.value"
                                            :value="item.value">
                                    </el-option>
                                </el-select>
                            </template>
                        </el-table-column>
                        <el-table-column
                                label="业绩类型" width="150">
                            <template slot-scope="scope">
                                <el-select v-model="scope.row.t4" placeholder="请选择业绩类型">
                                <el-select v-model="scope.row.achieveType" @change="calculationAchieve" placeholder="请选择业绩类型">
                                    <el-option
                                            v-for="item in achieveTypeList"
                                            :key="item.value"
@@ -442,12 +444,12 @@
                            </template>
                        </el-table-column>
                        <el-table-column
                                label="业绩" width="100">
                                label="业绩" >
                            <template slot-scope="scope">
                                <el-input v-model="scope.row.achieveMoney"></el-input>
                                <el-input @input="checkAchieveMoney" v-model="scope.row.goodsCash"></el-input>
                            </template>
                        </el-table-column>
                        <el-table-column
                        <el-table-column width="100"
                                label="提成">
                            <template slot-scope="scope">
                                <el-input v-model="scope.row.commission"></el-input>
@@ -474,7 +476,7 @@
                                           size="mini"
                                           @click="delAchieve(scope.$index, scope.row)">删除
                                </el-button>
                                <el-tooltip content="分享业绩" placement="top">
                                <el-tooltip content="分享业绩" placement="top" v-if="!scope.row.isShare">
                                    <el-button @click="shareAchieve(scope.$index, scope.row)" icon="el-icon-share"
                                               size="mini" type="primary"></el-button>
                                </el-tooltip>
@@ -487,6 +489,7 @@
        </el-row>
    </el-drawer>
    <!-- 收款 -->
    <el-dialog title="收款" :visible.sync="dialogSettleVisible">
        <el-row type="flex" align="middle" style="padding: 0 0 10px 0;">
            <el-col :span="5" style="text-align: center;">应收</el-col>
@@ -587,6 +590,13 @@
            vipList: [],
            currentVipInfo: {},
            vipLoading: false,
            itemSimplePayMethods:[{
                value: '现金',
                label:'现金',
            },{
                value: '划扣',
                label:'划扣',
            }],
            payMethods: [{
                value: '现金支付',
                img: '/images/pay/cash.png',
@@ -679,14 +689,6 @@
                }
            });
            //岗位业绩
            AjaxProxy.requst({
                app: _this,
                url: basePath + '/admin/customerDictionary/getListByParentCode/GWYJ',
                callback: function (data) {
                    _this.achievePostList = data.rows;
                }
            });
            // 业绩类型
            AjaxProxy.requst({
@@ -742,10 +744,9 @@
                                                    orderItem: item,
                                                    staff: _this.staffUser,
                                                    saleId: _this.staffUser.suId,
                                                    achieveMoney: item.payMoney,
                                                    goodsCash: item.payMoney,
                                                    commission : 0,
                                                    t3 : _this.achievePostList[0].value,
                                                    t4 : _this.achieveTypeList[0].value,
                                                    achieveType : _this.achieveTypeList[0].value,
                                                    isShare: false,
                                                });
                                            });
@@ -870,9 +871,8 @@
                            orderItem: item,
                            staff: this.staffUser,
                            saleId: this.staffUser.suId,
                            achieveMoney: item.payMoney,
                            t3 : _this.achievePostList[0].value,
                            t4 : _this.achieveTypeList[0].value,
                            goodsCash: item.payMoney,
                            achieveType : _this.achieveTypeList[0].value,
                            commission: 0,
                            isShare: false,
                        });
@@ -882,9 +882,8 @@
                            orderItem: item,
                            staff: this.loginUser,
                            saleId: this.loginUser.suId,
                            achieveMoney: item.payMoney,
                            t3 : _this.achievePostList[0].value,
                            t4 : _this.achieveTypeList[0].value,
                            goodsCash: item.payMoney,
                            achieveType : _this.achieveTypeList[0].value,
                            commission: 0,
                            isShare: false,
                        });
@@ -931,11 +930,15 @@
                                }
                                _this.order.payMoney += parseFloat(item.payMoney);
                                //重新计算业绩金额
                                _this.achieveList.forEach(achieve=>{
                                    if(achieve.orderItem==item){
                                        achieve.achieveMoney=item.payMoney;
                                    if(achieve.orderItem.uuid==item.uuid){
                                        achieve.orderItem.payMoney=item.payMoney;
                                    }
                                })
                                _this.calculationAchieve();
                            });
                            _this.order.payMoney = _this.order.payMoney.toFixed(2);
                            //计算欠款
@@ -977,14 +980,17 @@
                    let _this = this;
                    if(submitType == 1) {
                        //校验支付方式
                        if (_this.payMoneys.length > 0) {
                            let flows = []
                            var total = 0;
                            let isPayMethodOk=true;
                            _this.payMoneys.forEach(item => {
                                let flow = {};
                                flow.payMethod = item.type;
                                if (!item.money) {
                                    this.$message.warning("请输入" + item.type + "的付款金额");
                                    _this.$message.warning("请输入" + item.type + "的付款金额");
                                    isPayMethodOk=false;
                                    return false;
                                }
                                flow.amount = parseFloat(item.money);
@@ -995,6 +1001,10 @@
                                total += parseFloat(item.money);
                                flows.push(flow)
                            })
                            if(!isPayMethodOk){
                                return ;
                            }
                            if (total != _this.order.payMoney) {
                                this.$message.warning("输入付款总金额与应付金额不符");
                                return false;
@@ -1010,27 +1020,18 @@
                    _this.achieveList.forEach(achieve => {
                        for (let i = 0; i < _this.order.items.length; i++) {
                            let item = _this.order.items[i];
                            if (!item.achaeveList){
                                item.achaeveList = [];
                            if (!item.achieveList){
                                item.achieveList = [];
                            }
                            if (item.uuid == achieve.orderItem.uuid) {
                                let achieveNew = {
                                    uuid:item.uuid,
                                    beaultId: achieve.saleId,
                                    projPercentage: achieve.commission,
                                    achieveType: achieve.achieveType,
                                    goodsCash: achieve.goodsCash,
                                };
                                var flag = true;
                                for(var j = 0; j < item.achaeveList.length; j++) {
                                    if(item.achaeveList[j].uuid == achieveNew.uuid && item.achaeveList[j].beaultId == achieveNew.beaultId) {
                                        flag = false;
                                        break;
                                    }
                                }
                                if (flag) {
                                    item.achaeveList.push(achieveNew);
                                }
                               item.achieveList.push(achieveNew);
                                break;
                            }
                        }
@@ -1038,7 +1039,7 @@
                    console.log(_this.order);
                    //校验业绩金额
                    if (_this.checkAchieve()) {
                    if (_this.checkAchieveMoney()) {
                        let url = basePath + "/admin/order/payOrder";
                        if (submitType == 2) {
                            url = basePath + "/admin/order/saveOrder";
@@ -1094,29 +1095,7 @@
                }
            },
            /**
             * 校验订单业绩设置是否合理
             */
            checkAchieve() {
               /*
               //TODO 前端展示不检测,因为考虑到储值卡支付问题
               let _this = this;
                for (let i = 0; i < _this.order.items.length; i++) {
                    if (_this.achieveList.length > 0) {
                        let item = _this.order.items[i];
                        let sum = 0;
                        item.achieveList.forEach(achieve => {
                            console.log(sum, achieve);
                            sum += parseFloat(achieve.t1);
                        });
                        if (sum > item.payMoney) {
                            this.$message.warning("业绩金额不能大于支付金额【" + item.shoppingGoods.name + "】");
                            return false;
                        }
                    }
                }*/
                return true;
            },
            /**
             * 检查订单是否能够提交
@@ -1260,11 +1239,60 @@
            shareAchieve(index, row) {
                row2 = JSON.parse(JSON.stringify(row));
                row2.isShare = true;
                this.achieveList.push(row2);
                this.achieveList.splice(index+1,0,row2);
                //this.achieveList=;
                this.calculationAchieve();
            },
            //业绩均分订单金额
            calculationAchieve(){
                console.log("计算业绩");
                let jsqMap={};
                this.achieveList.forEach(achieve=>{
                    key=achieve.achieveType+achieve.orderItem.uuid;
                    if(!jsqMap[key]){
                        jsqMap[key]=1;
                    }else{
                        jsqMap[key]++;
                    }
                });
                this.achieveList.forEach(achieve=>{
                    key=achieve.achieveType+achieve.orderItem.uuid;
                    achieve.goodsCash=(achieve.orderItem.payMoney/jsqMap[key]).toFixed(2);
                });
            },
            //校验业绩是否大于订单收款金额
            checkAchieveMoney(){
                console.log("校验业绩是否大于订单收款金额");
                let jsqMap={};
                let isOk=true;
                this.achieveList.forEach(achieve=>{
                    if(!isNaN(achieve.goodsCash)  ){
                        key=achieve.achieveType+achieve.orderItem.uuid;
                        if(!jsqMap[key]){
                            jsqMap[key]=parseFloat(achieve.goodsCash);
                        }else{
                            jsqMap[key]=jsqMap[key]+parseFloat(achieve.goodsCash);
                        }
                        if(jsqMap[key]>achieve.orderItem.payMoney) {
                            this.$message.error("【"+achieve.orderItem.shoppingGoods.name + "】业绩分配金额大于支付金额");
                            isOk = false;
                            return;
                        }
                    }else{
                        this.$message.error("【"+achieve.orderItem.shoppingGoods.name + "】业绩分配金额请填写数字");
                        isOk=false;
                        return;
                    }
                });
                console.log("isOk",isOk);
                return isOk;
            },
            //删除业绩
            delAchieve(index, row) {
                this.achieveList.splice(index, 1);
                this.calculationAchieve();
            },
            print() {
                let _this = this;
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/orderXq-form.html
@@ -180,6 +180,8 @@
                            </el-table-column>
                            <el-table-column  label="小计" :formatter="calOrderTotalFormatter">
                            </el-table-column>
                            <el-table-column  label="支付方式"  prop="payMethod">
                            </el-table-column>
                        </el-table>
                    </el-row>
                    <el-row v-show="isRefund">
@@ -308,15 +310,19 @@
                                label="收款">
                        </el-table-column>
                        <el-table-column
                                prop="payMethod"
                                label="支付方式">
                        </el-table-column>
                        <el-table-column
                                prop="t3"
                                label="业绩类型">
                            <template slot-scope="scope">
                                <el-select v-model="scope.row.t3" placeholder="请选择业绩类型">
                                <el-select v-model="scope.row.achieveType" placeholder="请选择业绩类型">
                                    <el-option
                                            v-for="item in achieveTypeList"
                                            :key="item.key"
                                            :key="item.value"
                                            :label="item.value"
                                            :value="item.key">
                                            :value="item.value">
                                    </el-option>
                                </el-select>
                            </template>
@@ -325,7 +331,7 @@
                                prop="achieve"
                                label="业绩">
                            <template slot-scope="scope">
                                <el-input v-model="scope.row.t1"></el-input>
                                <el-input  @input="checkAchieveMoney" v-model="scope.row.goodsCash"></el-input>
                            </template>
                        </el-table-column>
                        <el-table-column
@@ -354,9 +360,9 @@
                                           size="mini"
                                           @click="delAchieve(scope.$index, scope.row)">删除
                                </el-button>
                                <el-tooltip content="分享业绩" placement="top">
                                    <el-button @click="shareAchieve(scope.$index, scope.row)" icon="el-icon-share"
                                               size="mini" type="primary"></el-button>
                                <el-tooltip content="分享业绩" placement="top" v-if="!scope.row.isShare">
                                    <el-button  @click="shareAchieve(scope.$index, scope.row)" icon="el-icon-share"
                                                size="mini" type="primary"></el-button>
                                </el-tooltip>
                            </template>
                        </el-table-column>
@@ -453,9 +459,9 @@
            </el-col>
        </el-row>
<!--        <el-row style="text-align: center; margin: 20px 0 10px 0">-->
<!--            <el-checkbox v-model="printPaper">打印小票</el-checkbox>-->
<!--        </el-row>-->
        <!--        <el-row style="text-align: center; margin: 20px 0 10px 0">-->
        <!--            <el-checkbox v-model="printPaper">打印小票</el-checkbox>-->
        <!--        </el-row>-->
        <el-row style="text-align: center; margin: 10px 0 0 0">
            <el-button type="primary" @click="confirmSubmit">确认收款</el-button>
@@ -482,15 +488,7 @@
            activeName : "first",
            circleUrl : "https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png",
            userList : [],
            achieveTypeList : [
                {
                    "key" : "现金业绩",
                    "value" : "现金业绩"
                },{
                    "key" : "划扣业绩",
                    "value" : "划扣业绩"
                },
            ],
            achieveTypeList : [],
            orderItems : [],
            achieveItems : [],
            flowItems : [],
@@ -546,8 +544,15 @@
        created : function() {
            let _this = this;
            this.orderParam = /*[[${orderParam}]]*/
            this.queryOrderDetailData(this.orderParam);
                this.queryOrderDetailData(this.orderParam);
            // 业绩类型
            AjaxProxy.requst({
                app: _this,
                url: basePath + '/admin/customerDictionary/getListByParentCode/YJLX',
                callback: function (data) {
                    _this.achieveTypeList = data.rows;
                }
            });
        },
        methods : {
            calRefund() {
@@ -855,34 +860,76 @@
            },
            saveAchieve() {
                let _this = this;
                AjaxProxy.requst({
                    app: _this,
                    data: _this.achieveItems,
                    contentType: 'application/json',
                    url: basePath + '/admin/achieve/add',
                    callback: function (data) {
                        _this.$message.success(data.info);
                    }
                });
            },
            shareAchieve(index, row) {
                var row2 = JSON.parse(JSON.stringify(row));
                row2.id = null;
                row2.isShare = true;
                this.achieveItems.push(row2);
            },
            delAchieve(index, row) {
                let _this = this;
                if (row.id) {
                if(_this.checkAchieveMoney()){
                    AjaxProxy.requst({
                        app: _this,
                        url: basePath + '/admin/achieve/del?id=' + row.id,
                        data: _this.achieveItems,
                        contentType: 'application/json',
                        url: basePath + '/admin/achieve/add',
                        callback: function (data) {
                            _this.$message.success(data.info);
                        }
                    });
                }
            },
            shareAchieve(index, row) {
                var row2 = JSON.parse(JSON.stringify(row));
                row2.id = null;
                row2.isShare = true;
                this.achieveItems.splice(index+1,0,row2);
                this.calculationAchieve();
            },
            //业绩均分订单金额
            calculationAchieve(){
                console.log("计算业绩");
                let jsqMap={};
                this.achieveItems.forEach(achieve=>{
                    key=achieve.achieveType+achieve.orderItemId;
                    if(!jsqMap[key]){
                        jsqMap[key]=1;
                    }else{
                        jsqMap[key]++;
                    }
                });
                this.achieveItems.forEach(achieve=>{
                    key=achieve.achieveType+achieve.orderItemId;
                    achieve.goodsCash=(achieve.zkTotal/jsqMap[key]).toFixed(2);
                });
            },
            //校验业绩是否大于订单收款金额
            checkAchieveMoney(){
                console.log("校验业绩是否大于订单收款金额");
                let jsqMap={};
                let isOk=true;
                this.achieveItems.forEach(achieve=>{
                    if(!isNaN(achieve.goodsCash)  ){
                        key=achieve.achieveType+achieve.orderItemId;
                        if(!jsqMap[key]){
                            jsqMap[key]=parseFloat(achieve.goodsCash);
                        }else{
                            jsqMap[key]=jsqMap[key]+parseFloat(achieve.goodsCash);
                        }
                        if(jsqMap[key]>achieve.zkTotal) {
                            this.$message.error("【"+achieve.goodsName + "】业绩分配金额大于支付金额");
                            isOk = false;
                            return;
                        }
                    }else{
                        this.$message.error("【"+achieve.goodsName + "】业绩分配金额请填写数字");
                        isOk=false;
                        return;
                    }
                });
                console.log("isOk",isOk);
                return isOk;
            },
            //删除业绩
            delAchieve(index, row) {
                let _this = this;
                _this.achieveItems.splice(index, 1);
                this.calculationAchieve();
            },
            checkAchieveIsDel(items) {
                var achieveIds = [];