jyy
2021-01-28 f7da0c38c517bde37cd30bc060c11d15ba124d56
1、修复若干问题
28 files modified
748 ■■■■■ changed files
zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java 3 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/action/MoneyCardUseController.java 68 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java 11 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/action/ProjServiceController.java 5 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/action/ProjUseController.java 39 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/action/TaocanController.java 24 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/bean/MoneyCardUse.java 15 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/bean/SysProjUse.java 14 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/MoneyCardUseService.java 6 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/SysProjUseService.java 21 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/SysVipInfoService.java 5 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/imp/MoneyCardUseServiceImpl.java 61 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java 157 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjUseServiceImpl.java 83 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java 5 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/statistics/OrderFlowAction.java 5 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/statistics/ServiceStatisticsAction.java 1 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hiveErp/action/ErpVipInfoController.java 11 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/YuyueAction.java 13 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseDao.xml 11 ●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/hive/SysBeauticianStateDao.xml 4 ●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderFlowDao.xml 5 ●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml 61 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/jyls.html 22 ●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/statistics-projSercice-item.html 12 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip.html 22 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/hive/statistics/jyls.html 47 ●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/hive/statistics/statistics-projSercice-item.html 17 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java
@@ -42,7 +42,6 @@
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@@ -131,7 +130,7 @@
        if (CollectionUtils.isNotEmpty(serviceTcVos)) {
            serviceTcVos.forEach(item -> {
                List<SysProjUse> sysProjUses = projUseService.selectTaocanProjUse(item.getId());
                List<SysProjUse> sysProjUses = projUseService.selectTaocanProjUse(item.getId(), queryUse.getStatus());
                List<ServiceProjVo> taocanProj = SysProjUseMapper.INSTANCE.entityListToProjVoList(sysProjUses);
                item.setProj(taocanProj);
            });
zq-erp/src/main/java/com/matrix/system/hive/action/MoneyCardUseController.java
@@ -55,9 +55,10 @@
    @Resource
    private SysVipInfoService vipInfoService;
    @Autowired
    @Resource
    private MoneyCardUseFlowDao moneyCardUseFlowDao;
    @Autowired
    @Resource
    private   MoneyCardUseDao moneyCardUseDao;
@@ -76,20 +77,9 @@
    @RequestMapping(value = "/editFormCz")
    public String editFormCz(Long id) {
        MoneyCardUse cardUseInfo = cardUseService.findByVipId(id);
        if (cardUseInfo == null) {
            cardUseInfo = new MoneyCardUse();
            cardUseInfo.setVipId(id);
            cardUseInfo.setCardName("储值卡");
            cardUseInfo.setIsVipCar(Dictionary.FLAG_YES_Y);
            cardUseInfo.setRealMoney(0D);
            cardUseInfo.setGiftMoney(0D);
            cardUseInfo.setSource("-");
            cardUseInfo.setFailTime(DateUtil.stringToDate("2050-01-01 00:00",DateUtil.DATE_FORMAT_MM));
            cardUseInfo.setStatus(Dictionary.MONEYCARD_STATUS_YX);
            moneyCardUseDao.insert(cardUseInfo);
            cardUseInfo=vipInfoService.addVipDefaultCard(id);
        }
        WebUtil.getRequest().setAttribute("obj", cardUseInfo);
        return "admin/hive/beautySalon/cz-form";
    }
@@ -381,57 +371,7 @@
        return new AjaxResult(AjaxResult.STATUS_FAIL, "冻结失败");
    }
    /**
     * 退款
     *
     * @return
     */
    @RequestMapping(value = "getEffectCard")
    public @ResponseBody
    AjaxResult getEffectCard(MoneyCardUse moneyCardUse) {
        AjaxResult result = AjaxResult.buildSuccessInstance("");
        //要退款的充值卡
        MoneyCardUse srcCardUse = cardUseService.findById(moneyCardUse.getId());
        if (!srcCardUse.getStatus().equals(Dictionary.TAOCAN_STATUS_YX)) {
            throw new GlobleException("不是有效充值卡");
        }
        //该会员是否有有效会籍卡
        MoneyCardUse targetCardUse = cardUseService.findByVipId(moneyCardUse.getVipId());
        double money = srcCardUse.getRealMoney();
        if (targetCardUse != null) {
            targetCardUse.setRealMoney(money);
            List<MoneyCardUse> list = Arrays.asList(targetCardUse);
            if (targetCardUse.getId().equals(srcCardUse.getId())) {
                result.setInfo("会籍卡退款只能退现金");
                result.setRows(list);
            } else {
                result.setInfo("有有效会籍卡");
                result.setRows(list);
            }
        } else {
            //无会员卡则new一个,为了把钱传递到前台
            targetCardUse = new MoneyCardUse();
            targetCardUse.setRealMoney(money);
            List<MoneyCardUse> list1 = Arrays.asList(targetCardUse);
            result.setInfo("无有效会籍卡,退现金");
            result.setRows(list1);
        }
        return result;
    }
    @RequestMapping(value = "/returnMoney")
    public @ResponseBody
    AjaxResult returnMoney(MoneyCardUse moneyCardUse, Long hjkId, String tcRemark, Long
            shopId, Double money
            , String tcName) {
        int i = cardUseService.returnMoney(moneyCardUse, hjkId);
        if (i > 0) {
            return new AjaxResult(AjaxResult.STATUS_SUCCESS, "退款成功");
        }
        return new AjaxResult(AjaxResult.STATUS_FAIL, "冻结失败");
    }
}
zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java
@@ -293,16 +293,7 @@
        MoneyCardUse cardUseInfo = cardUseService.findByVipId(order.getVipId());
        if (cardUseInfo == null) {
            cardUseInfo = new MoneyCardUse();
            cardUseInfo.setVipId(order.getVipId());
            cardUseInfo.setCardName("储值卡");
            cardUseInfo.setIsVipCar(Dictionary.FLAG_YES_Y);
            cardUseInfo.setRealMoney(0D);
            cardUseInfo.setGiftMoney(0D);
            cardUseInfo.setSource("-");
            cardUseInfo.setStatus(Dictionary.MONEYCARD_STATUS_YX);
            cardUseInfo.setFailTime(DateUtil.stringToDate("2050-01-01 00:00",DateUtil.DATE_FORMAT_MM));
            moneyCardUseDao.insert(cardUseInfo);
            cardUseInfo=sysVipInfoService.addVipDefaultCard(order.getVipId());
        }
        //打印需求加入门店信息
zq-erp/src/main/java/com/matrix/system/hive/action/ProjServiceController.java
@@ -18,11 +18,8 @@
import com.matrix.system.constance.Dictionary;
import com.matrix.system.hive.bean.*;
import com.matrix.system.hive.dao.*;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.pojo.TaoCanVo;
import com.matrix.system.hive.service.*;
import org.apache.commons.collections.CollectionUtils;
import org.jsoup.helper.DataUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
@@ -197,7 +194,7 @@
        queryUse.setType(Dictionary.SHOPPING_GOODS_TYPE_TC);
        List<SysProjUse> taoCanList = projUseService.findInPage(queryUse, null);
        taoCanList.forEach(item->{
            item.setTaocanProjUse(projUseService.selectTaocanProjUse(item.getId()));
            item.setTaocanProjUse(projUseService.selectTaocanProjUse(item.getId(), queryUse.getStatus()));
            item.setProjInfo(shoppingGoodsDao.selectById(item.getProjId()));
        });
        result.putInMap("projList", projList);
zq-erp/src/main/java/com/matrix/system/hive/action/ProjUseController.java
@@ -168,21 +168,7 @@
        return new AjaxResult(AjaxResult.STATUS_FAIL, "项目转让失败");
    }
    @RequestMapping(value = "/returnProj")
    public @ResponseBody
    AjaxResult returnTc(SysProjUse sysProjUse, Long moneyCardUseId, String tcRemark, Long shopId, Double money, String tcName) {
        MoneyCardUse card = null;
        if (moneyCardUseId != null) {
            card = moneyCardUseService.findById(moneyCardUseId);
        }
        int i = projUseService.returnMoneyProj(sysProjUse, card, moneyCardUseId);
        if (i > 0) {
            return new AjaxResult(AjaxResult.STATUS_SUCCESS, "退款成功");
        }
        return new AjaxResult(AjaxResult.STATUS_FAIL, "退款失败");
    }
    /**
@@ -203,31 +189,6 @@
    }
    /**
     * 退款
     *
     * @return
     */
    @RequestMapping(value = "/getEffectCard")
    public @ResponseBody
    AjaxResult getEffectCard(SysProjUse sysProjUse) {
        MoneyCardUse cardUse = moneyCardUseService.findByVipId(sysProjUse.getVipId());
        double money = projUseService.getTotalMoneyProj(sysProjUse);
        if (cardUse != null) {
            cardUse.setRealMoney(money);
            List<MoneyCardUse> list = new ArrayList<MoneyCardUse>();
            list.add(cardUse);
            return new AjaxResult(AjaxResult.STATUS_SUCCESS, null, "有有效会籍卡", list, null);
        } else {
            //无会员卡则new一个,为了把钱传递到前台
            cardUse = new MoneyCardUse();
            cardUse.setRealMoney(money);
            List<MoneyCardUse> list = new ArrayList<MoneyCardUse>();
            list.add(cardUse);
            return new AjaxResult(AjaxResult.STATUS_SUCCESS, null, "无有效会籍卡", list, null);
        }
    }
    /**
     * 冻结会员项目
zq-erp/src/main/java/com/matrix/system/hive/action/TaocanController.java
@@ -65,7 +65,7 @@
        List<SysProjUse> projUseList =sysProjUseService.findInPage(sysProjUse,null);
        //设置套餐中的项目
        projUseList.forEach(taocanProjUse -> {
            taocanProjUse.setTaocanProjUse(sysProjUseService.selectTaocanProjUse(taocanProjUse.getId()));
            taocanProjUse.setTaocanProjUse(sysProjUseService.selectTaocanProjUse(taocanProjUse.getId(),sysProjUse.getStatus()));
        });
        return new AjaxResult(AjaxResult.STATUS_SUCCESS, projUseList, sysProjUseService.findTotal(sysProjUse));
    }
@@ -123,21 +123,7 @@
        return new AjaxResult(AjaxResult.STATUS_FAIL, "套餐转让失败");
    }
    @RequestMapping(value = "/returnTc")
    public @ResponseBody
    AjaxResult returnTc(SysProjUse sysProjUse, Long moneyCardUseId, String tcRemark, Long shopId, Double money, String tcName) {
        System.out.println("moneyCardUseId = " + moneyCardUseId);
        MoneyCardUse card = moneyCardUseService.findById(moneyCardUseId);
        System.out.println("card = " + card);
        int i = sysProjUseService.returnMoneyTc(sysProjUse, card, moneyCardUseId);
        if (i > 0) {
            return new AjaxResult(AjaxResult.STATUS_SUCCESS, "退款成功");
        }
        return new AjaxResult(AjaxResult.STATUS_FAIL, "退款失败");
    }
    /**
@@ -158,11 +144,7 @@
    }
    /**
     * 退款
     *
     * @return
     */
    @RequestMapping(value = "/getEffectCard")
    public @ResponseBody
    AjaxResult getEffectCard(SysProjUse sysProjUse) {
@@ -194,7 +176,7 @@
    public String editForm(Long id) {
        if (id != null) {
            SysProjUse sysProjUse = sysProjUseService.findById(id);
            sysProjUse.setTaocanProjUse(sysProjUseService.selectTaocanProjUse(sysProjUse.getId()));
            sysProjUse.setTaocanProjUse(sysProjUseService.selectTaocanProjUse(sysProjUse.getId(), sysProjUse.getStatus()));
            WebUtil.getRequest().setAttribute("obj", sysProjUse);
        }
        return "admin/hive/vip/tc-form";
zq-erp/src/main/java/com/matrix/system/hive/bean/MoneyCardUse.java
@@ -77,6 +77,11 @@
     * 充值卡的id
     */
    private Long  goodsId;
    /**
     * 订单ID
     */
    private Long  orderId;
            
    
    private Long  vipId;
@@ -88,7 +93,7 @@
    private String  isOver;
            
    /**
     * 是会籍卡? Y 是,N否
     * 是默认储值卡? Y 是,N否
     */
    private String  isVipCar;
    /**
@@ -105,6 +110,14 @@
     */
    private String cardName;
    public Long getOrderId() {
        return orderId;
    }
    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }
    public String getCardName() {
        return cardName;
    }
zq-erp/src/main/java/com/matrix/system/hive/bean/SysProjUse.java
@@ -63,6 +63,12 @@
    private Long orderItemId;
    /**
     * 订单id
     */
    @Extend
    private Long orderId;
    /**
     * 单次扣减金额(理解为单次手工业绩)
     * =订单金额/订单数量
     * 如果是赠送则等于产品原价,业绩记录为赠销
@@ -138,6 +144,14 @@
    private String updateRemark;
    public Long getOrderId() {
        return orderId;
    }
    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }
    public String getUpdateRemark() {
        return updateRemark;
    }
zq-erp/src/main/java/com/matrix/system/hive/service/MoneyCardUseService.java
@@ -93,11 +93,7 @@
     */
    public void transfer(MoneyCardUse moneyCardUse, Long vipId2, Double money);
    /**
     * 退款
     * jyy
     */
    public int returnMoney(MoneyCardUse moneyCardUse, Long hjkId);
    /**
     * 设置为有效
zq-erp/src/main/java/com/matrix/system/hive/service/SysProjUseService.java
@@ -94,12 +94,7 @@
    public int invalidTc(SysProjUse sysProjUse);
    
    /**
     * 退款
     * @param sysProjUse
     * @return
     */
    public int returnMoneyTc(SysProjUse sysProjUse, MoneyCardUse cardUse, Long moneyCardUseId);
    /**
     * 设置为有效套餐
     * @param proj
@@ -134,28 +129,16 @@
    
    /**
     * 退款
     * @param sysProjUse
     * @return
     */
    public int returnMoneyProj(SysProjUse sysProjUse, MoneyCardUse cardUse, Long moneyCardUseId);
    /**
     * 设置为有效套餐
     * @param proj
     * @return
     */
    public AjaxResult activeProj(SysProjUse proj);
    /**
     * 退款项目
     * @param sysProjUse
     * @return
     */
    public double getTotalMoneyProj(SysProjUse sysProjUse);
    public int updateProjUseTck(SysProjUse projUse);
    public List<SysProjUse> selectTaocanProjUse(Long id);
    public List<SysProjUse> selectTaocanProjUse(Long id, String status);
}
zq-erp/src/main/java/com/matrix/system/hive/service/SysVipInfoService.java
@@ -6,14 +6,13 @@
import com.matrix.system.app.dto.VipInfoListDto;
import com.matrix.system.app.vo.VipInfoDetailVo;
import com.matrix.system.app.vo.VipInfoListVo;
import com.matrix.system.hive.bean.MoneyCardUse;
import com.matrix.system.hive.bean.SysVipInfo;
import com.matrix.system.hive.plugin.util.BaseServices;
import com.matrix.system.hive.pojo.VipInfoVo;
import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.NoSuchAlgorithmException;
import java.util.List;
/**
@@ -22,7 +21,7 @@
 */
public interface SysVipInfoService  extends BaseServices<SysVipInfo>{
    public  int addVipDefaultCard(Long vipId);
    public MoneyCardUse addVipDefaultCard(Long vipId);
    /**
     * 新增SysVipInfo
     * 
zq-erp/src/main/java/com/matrix/system/hive/service/imp/MoneyCardUseServiceImpl.java
@@ -42,6 +42,10 @@
    @Autowired
    private SysVipLevelDao viplevelDao;
    @Override
    public int add(MoneyCardUse moneyCardUse) {
@@ -213,64 +217,7 @@
        }
    }
    //退款
    @Override
    public int returnMoney(MoneyCardUse moneyCardUse, Long hjkId) {
        MoneyCardUse realObj = moneyCardUseDao.selectById(moneyCardUse.getId());
        //检测商品是否已付款完成
        if (realObj.getOrderItemId() != 1) {//不是数据迁移过来的判断付款状态
            checkOrderStatu(realObj.getOrderItemId());
        }
        if (!realObj.getStatus().equals(Dictionary.TAOCAN_STATUS_YX)) {
            throw new GlobleException("不是有效充值卡");
        }
        if (realObj.getSource().contains(Dictionary.TAOCAN_SOURCE_ZR)) {
            throw new GlobleException("转让的充值卡不能退款");
        }
        if (realObj.getSource().contains(Dictionary.TAOCAN_SOURCE_ZS)) {
            throw new GlobleException("赠送的充值卡不能退款");
        }
        if (Dictionary.FLAG_YES_Y.equals(realObj.getIsVipCar())) {
            //更新会员等级
            realObj.getVipInfo().setLevelId(0L);
            infoDao.update(realObj.getVipInfo());
        }
        StringBuilder content = new StringBuilder();
        //有会籍卡退到会籍卡中,无则退了现金
        if (hjkId != null && !hjkId.equals("")) {
            MoneyCardUse vipCard = moneyCardUseDao.selectById(hjkId);
            vipCard.setRealMoney(vipCard.getRealMoney() + realObj.getRealMoney());
            moneyCardUseDao.update(vipCard);
            content.append(realObj.getCardName() + "退款¥" + realObj.getRealMoney() + "到会籍卡")
                    .append(vipCard.getCardName())
                    .append(",余次:" + vipCard.getLastCountName())
                    .append(",本金余额:" + vipCard.getRealMoney())
                    .append(",有效期:" + DateUtil.dateToString(vipCard.getFailTime(), DateUtil.DATE_FORMAT_MM))
                    .append(",是否赠送:" + vipCard.getSourceName());
        } else {
            content.append(realObj.getCardName() + "退款现金¥" + moneyCardUse.getReturnMonery() + "");
        }
        DecimalFormat df = new DecimalFormat("#.00");
        double d = Double.valueOf(df.format(realObj.getRealMoney() - Double.valueOf(moneyCardUse.getReturnMonery())));
        //退款的本金为零,状态为已退款
        realObj.setRealMoney(d);
        //赠送金额也清零
        realObj.setGiftMoney(0.0);
        if (d <= 0) {
            realObj.setStatus(Dictionary.TAOCAN_STATUS_TK);
        }
        int i = moneyCardUseDao.update(realObj);
        SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
        //新增退款流水
        return i;
    }
    //设置为有效
    @Override
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
@@ -4,7 +4,6 @@
import com.matrix.core.constance.MatrixConstance;
import com.matrix.core.exception.GlobleException;
import com.matrix.core.pojo.PaginationVO;
import com.matrix.core.tools.LogUtil;
import com.matrix.core.tools.StringUtils;
import com.matrix.core.tools.WebUtil;
import com.matrix.system.app.dto.OrderListDto;
@@ -17,10 +16,8 @@
import com.matrix.system.common.dao.BusParameterSettingsDao;
import com.matrix.system.common.dao.SysUsersDao;
import com.matrix.system.constance.Dictionary;
import com.matrix.system.constance.SystemConstance;
import com.matrix.system.hive.bean.*;
import com.matrix.system.hive.dao.*;
import com.matrix.system.hive.hievEnum.PayMethodEnum;
import com.matrix.system.hive.plugin.util.CollectionUtils;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.plugin.util.MoneyUtil;
@@ -36,6 +33,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpSession;
import javax.validation.constraints.NotEmpty;
import java.util.*;
@@ -113,7 +111,7 @@
    @Value("${evn}")
    private  String evn;
    private String evn;
    @Autowired
    private RabiitMqTemplate rabiitMqTemplate;
@@ -147,7 +145,7 @@
    @Override
    public List<SysOrder> findInPage(SysOrder sysOrder, PaginationVO pageVo) {
        if(pageVo!=null){
        if (pageVo != null) {
            pageVo.setSort("desc");
            pageVo.setSort("orderTime");
        }
@@ -211,7 +209,7 @@
            // 订单欠款减去支付金额 设置实际欠款
            Double itemZkTotal = MoneyUtil.mul(item.getZkPrice(), Double.valueOf(item.getCount()));
            zkTotal=MoneyUtil.add(zkTotal, itemZkTotal);
            zkTotal = MoneyUtil.add(zkTotal, itemZkTotal);
            item.setStatus(orderStatus);
        }
@@ -222,12 +220,12 @@
        sysOrder.setCompanyId(source != null ? source.getCompanyId() : user.getCompanyId());
        sysOrder.setPayTime(new Date());
        if(sysOrder.getId()==null){
        if (sysOrder.getId() == null) {
            //新增订单
            sysOrder.setOrderNo(codeService.getOrderCode());
            sysOrderDao.insert(sysOrder);
        }else{
        } else {
            //更新订单
            sysOrderDao.update(sysOrder);
            //删除原有订单明细
@@ -269,9 +267,9 @@
            order.setArrears(0D);
            //发送微信公众号提醒
            UniformMsgParam uniformMsgParam=new UniformMsgParam(order.getCompanyId(),UniformMsgParam.GZH_DDQX);
            uniformMsgParam.put("orderId",order.getId());
            rabiitMqTemplate.sendMsg(MQTaskRouting.SEND_UNIFORM_TEMPLATE_MSG+evn,uniformMsgParam.toJSONString());
            UniformMsgParam uniformMsgParam = new UniformMsgParam(order.getCompanyId(), UniformMsgParam.GZH_DDQX);
            uniformMsgParam.put("orderId", order.getId());
            rabiitMqTemplate.sendMsg(MQTaskRouting.SEND_UNIFORM_TEMPLATE_MSG + evn, uniformMsgParam.toJSONString());
            return sysOrderDao.update(order);
@@ -296,12 +294,12 @@
                        // 根据订单明细判断是赠送金额购买还是本金购买
                            moneyCardUseFlow.setTotal(orderItem.getCardPay());
                            moneyCardUse.setRealMoney(MoneyUtil.add(moneyCardUse.getRealMoney(), orderItem.getCardPay()));
                        moneyCardUseFlow.setTotal(orderItem.getCardPay());
                        moneyCardUse.setRealMoney(MoneyUtil.add(moneyCardUse.getRealMoney(), orderItem.getCardPay()));
                        //TODO 目前无法退回到具体的赠送金额还是本金
                        if (!moneyCardUse.getIsVipCar().equals(Dictionary.FLAG_YES_Y)) {
                            if(moneyCardUse.getLastCount()!=null) {
                            if (moneyCardUse.getLastCount() != null) {
                                moneyCardUse.setLastCount(moneyCardUse.getLastCount() + 1);
                                moneyCardUseFlow.setTimes(1);
                            }
@@ -316,7 +314,7 @@
                        moneyCardUseFlow.setCreateTime(new Date());
                        moneyCardUseFlow.setOperationId(user.getSuId());
                        moneyCardUseFlow.setContent(moneyCardUse.getChangeRemark());
                        moneyCardUseFlow.setBalance(moneyCardUse.getGiftMoney()+moneyCardUse.getRealMoney());
                        moneyCardUseFlow.setBalance(moneyCardUse.getGiftMoney() + moneyCardUse.getRealMoney());
                        moneyCardUseFlowDao.insert(moneyCardUseFlow);
                    }
                }
@@ -484,7 +482,6 @@
    @Transactional(rollbackFor = Exception.class)
    public void updateReceiptMoney(SysOrder pageOrder) throws GlobleException {
        if (!Dictionary.ORDER_STATU_DFK.equals(pageOrder.getStatu())) {
            throw new GlobleException("该订单已经收过款,请刷新页面再试!");
        }
@@ -497,78 +494,92 @@
            sysVipInfoDao.update(vipInfo);
        }
        //设置订单的成交状态
        changeOrderStatu(pageOrder);
        // 设置会员充值卡使用情况
        addMoneyCardUse(pageOrder);
        // 新增出库单
        addOutStore(pageOrder);
        // 改变客户项目套餐使用情况
        addTaocanProj(pageOrder);
        // 新增出库单
        addOutStore(pageOrder);
        // 设置业绩
        achieveNewService.addAchaeveByOrder(pageOrder);
        setShopSelCount(pageOrder);
    }
    /**
     * 收款改变订单状态,划扣金额
     *
     * @author:姜友瑶
     */
    private void changeOrderStatu(SysOrder sourceOrder) {
        int i = 1;
        String orderStatus = Dictionary.ORDER_STATU_YFK;
        String flowType = SysOrderFlow.FLOW_TYPE_BUY;
        double cashPayTotal = 0D;
        double cardPayTotal = 0D;
        //处理支付流水
        int flowCount = 1;
        for (SysOrderFlow flow : sourceOrder.getFlows()) {
            flow.setFlowNo(codeService.getFlowCode() + "-" + i);
            //支付内容摘要设置
            Long goodsId = sourceOrder.getItems().get(0).getGoodsId();
            ShoppingGoods goods = shoppingGoodsDao.selectById(goodsId);
            flow.setFlowContent(goods.getName() + "等" + sourceOrder.getItems().size() + "件产品");
            // 若是退款,则取负数
            if (Dictionary.ORDER_STATU_TK.equals(sourceOrder.getStatu())) {
                flowType = SysOrderFlow.FLOW_TYPE_REFUND;
                // 若是退款,则取负数
                flow.setAmount(flow.getAmount().negate());
                flow.setOrderId(sourceOrder.getOldOrderId());
            } else {
                flow.setOrderId(sourceOrder.getId());
            }
            flow.setVipId(sourceOrder.getVipId());
            flow.setFlowType(flowType);
            // 若使用储值卡付款
            if (SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) {
                if (flow.getCardId() != null) {
                    MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(flow.getCardId());
                    cardPaySk(moneyCardUse, sourceOrder, flow);
                    cardPayTotal += flow.getAmount().doubleValue();
                }
            }
            //欠款处理
            if (SysOrderFlow.PAY_METHOD_ARREARS.equals(flow.getPayMethod())) {
                orderStatus = Dictionary.ORDER_STATU_QK;
                sourceOrder.setArrears(flow.getAmount().doubleValue());
            }
            if (!SysOrderFlow.PAY_METHOD_ARREARS.equals(flow.getPayMethod()) && !SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) {
            //统计储值卡支付
            if (SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) {
                if (flow.getCardId() != null) {
                    MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(flow.getCardId());
                    cardPayTotal += flow.getAmount().doubleValue();
                    //修改储值卡余额
                    cardPaySk(moneyCardUse, sourceOrder, flow);
                }else{
                    throw new GlobleException("无效的储值卡支付方式");
                }
            }
            //统计现金支付
            if (!SysOrderFlow.PAY_METHOD_ARREARS.equals(flow.getPayMethod())
                    && !SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) {
                cashPayTotal += flow.getAmount().doubleValue();
            }
            flow.setFlowNo(codeService.getFlowCode() + "-" + flowCount);
            flow.setVipId(sourceOrder.getVipId());
            flow.setFlowType(flowType);
            flow.setShopId(sourceOrder.getShopId());
            flow.setCompanyId(sourceOrder.getCompanyId());
            sysOrderFlowDao.insert(flow);
            i++;
            flowCount++;
        }
        //修改订单信息
        if (Dictionary.ORDER_STATU_TK.equals(sourceOrder.getStatu())) {
            orderStatus = Dictionary.ORDER_STATU_TK;
        }
        // 更新收款状态
        sourceOrder.setStatu(orderStatus);
        sourceOrder.setCardPay(cardPayTotal);
@@ -606,7 +617,6 @@
    }
    /**
     * 使用充值卡付款操作
     *
@@ -624,9 +634,9 @@
        SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
        MoneyCardUseFlow moneyCardUseFlow=new MoneyCardUseFlow();
        MoneyCardUseFlow moneyCardUseFlow = new MoneyCardUseFlow();
        if (SysOrderFlow.IS_GIFT_Y.equals(flow.getIsGift())) {
            if(moneyCardUse.getGiftMoney() >= flow.getAmount().doubleValue()) {
            if (moneyCardUse.getGiftMoney() >= flow.getAmount().doubleValue()) {
                double surplus = MoneyUtil.sub(moneyCardUse.getGiftMoney(), flow.getAmount().doubleValue());
                moneyCardUse.setGiftMoney(surplus);
                moneyCardUseFlow.setGiftMoney(0D - flow.getAmount().doubleValue());
@@ -634,7 +644,7 @@
                throw new GlobleException(moneyCardUse.getCardName() + "余额不足");
            }
        } else {
            if(moneyCardUse.getRealMoney() >= flow.getAmount().doubleValue()) {
            if (moneyCardUse.getRealMoney() >= flow.getAmount().doubleValue()) {
                double surplus = MoneyUtil.sub(moneyCardUse.getRealMoney(), flow.getAmount().doubleValue());
                moneyCardUse.setRealMoney(surplus);
                moneyCardUseFlow.setTotal(0 - flow.getAmount().doubleValue());
@@ -645,7 +655,7 @@
        if (moneyCardUse.getIsVipCar().equals(Dictionary.FLAG_NO_N)) {
            //余额为0时充值卡变为无效
            if(moneyCardUse.getRealMoney().equals(0D) && moneyCardUse.getGiftMoney().equals(0D)){
            if (moneyCardUse.getRealMoney().equals(0D) && moneyCardUse.getGiftMoney().equals(0D)) {
                moneyCardUse.setIsOver(Dictionary.FLAG_YES_Y);
                moneyCardUse.setStatus(Dictionary.MONEYCARD_STATUS_WX);
            }
@@ -666,7 +676,7 @@
        moneyCardUseFlow.setType(MoneyCardUseFlow.USE_TYPE_CONSUMER);
        moneyCardUseFlow.setCreateTime(new Date());
        moneyCardUseFlow.setOperationId(user.getSuId());
        moneyCardUseFlow.setBalance(moneyCardUse.getGiftMoney()+moneyCardUse.getRealMoney());
        moneyCardUseFlow.setBalance(moneyCardUse.getGiftMoney() + moneyCardUse.getRealMoney());
        moneyCardUseFlowDao.insert(moneyCardUseFlow);
    }
@@ -740,7 +750,7 @@
            // 如果购买的是充值卡
            if (sysOrderItem.getType().equals(Dictionary.SHOPPING_GOODS_TYPE_CZK)) {
                for(int i = 0; i < sysOrderItem.getCount(); i++) {
                for (int i = 0; i < sysOrderItem.getCount(); i++) {
                    ShoppingGoods moneyCar = shoppingGoodsDao.selectById(sysOrderItem.getGoodsId());
                    MoneyCardUse moneyCardUse = new MoneyCardUse();
                    moneyCardUse.setVipId(sourceOrder.getVipId());
@@ -752,13 +762,8 @@
                    moneyCardUse.setSource(Dictionary.TAOCAN_SOURCE_GM);
                    moneyCardUse.setStatus(Dictionary.MONEYCARD_STATUS_YX);
                    moneyCardUse.setCardName(moneyCar.getName());
                    if (Dictionary.FLAG_YES.equals(moneyCar.getCarIsAll())) {
                        moneyCardUse.setIsVipCar(Dictionary.FLAG_YES_Y);
                    } else {
                        // 非会籍卡
                        moneyCardUse.setIsVipCar(Dictionary.FLAG_NO_N);
                    }
                    moneyCardUse.setIsVipCar(Dictionary.FLAG_NO_N);
                    moneyCardUse.setVipId(sourceOrder.getVipId());
                    // 是否为赠送
                    if (sysOrderItem.getIsFree().equals(Dictionary.FLAG_YES)) {
@@ -766,6 +771,7 @@
                    } else {
                        moneyCardUse.setSource(Dictionary.TAOCAN_SOURCE_GM);
                    }
                    //余次处理
                    if (moneyCar.getCarUseCount() == null || moneyCar.getCarUseCount() == 0) {
                        moneyCardUse.setUseTotal(999999999);
                        moneyCardUse.setLastCount(999999999);
@@ -773,8 +779,7 @@
                        moneyCardUse.setUseTotal(moneyCar.getCarUseCount());
                        moneyCardUse.setLastCount(moneyCar.getCarUseCount());
                    }
                    moneyCardUse.setVipId(sourceOrder.getVipId());
                    //失效时间处理
                    Date invalidTime = shoppingGoodsService.calInvalidTime(sysOrderItem.getShoppingGoods(), 1, null);
                    moneyCardUse.setFailTime(invalidTime);
@@ -824,16 +829,16 @@
            i++;
        }
        boolean haQk=false;
        boolean haQk = false;
        if (refundTotal == pageOrder.getArrears()) {
            haQk = true;
        }
        //更新收款状态
        if(haQk){
        if (haQk) {
            sourceOrder.setStatu(Dictionary.ORDER_STATU_YFK);
        }else{
        } else {
            sourceOrder.setStatu(Dictionary.ORDER_STATU_QK);
        }
@@ -993,7 +998,8 @@
            //综合卡中包含的项目
            List<ShoppingGoodsAssemble> assembleList = shoppingGoodsAssembleDao.selectGoodsByShoppingGoodsIdAndType(sysOrderItem.getGoodsId(), ShoppingGoods.SHOPPING_GOODS_TYPE_XM);
            assembleList.forEach(item -> {
                createProjuseByAssemble(order, sysOrderItem, item, null);
                //TODO 补综合卡逻辑
                createProjuseByAssemble(order, sysOrderItem, item, null, null);
            });
            //处理综合卡中包含的套餐
@@ -1014,9 +1020,9 @@
     * 通过组合关系创建用户项目余次
     */
    private SysProjUse createProjuseByAssemble(SysOrder order, SysOrderItem sysOrderItem,
                                               ShoppingGoodsAssemble goodsAssemble, Long taocanId) {
                                               ShoppingGoodsAssemble goodsAssemble, Long taocanId, Date failTime) {
        //计算折扣
        Double zk=sysOrderItem.getZkPrice()/sysOrderItem.getPrice();
        Double zk = sysOrderItem.getZkPrice() / sysOrderItem.getPrice();
        SysProjUse puse = new SysProjUse();
        puse.setIsOver(Dictionary.DELETED_N);
@@ -1030,9 +1036,9 @@
        puse.setTaocanId(taocanId);
        puse.setType(Dictionary.SHOPPING_GOODS_TYPE_XM);
        if (taocanId == null) {
            puse.setPrice(goodsAssemble.getShoppingGoods().getPrice() * zk );
            puse.setPrice(goodsAssemble.getShoppingGoods().getPrice() * zk);
        } else {
            puse.setPrice(goodsAssemble.getPrice() * zk  );
            puse.setPrice(goodsAssemble.getPrice() * zk);
        }
        puse.setBalance(MoneyUtil.mul(puse.getPrice(), Double.valueOf(puse.getSurplusCount())));
        // 赠送和打折后金额为0的都视为赠送项目
@@ -1041,10 +1047,7 @@
        } else {
            puse.setSource(Dictionary.TAOCAN_SOURCE_ZS);
        }
        // 设置失效时间
        Calendar cal = Calendar.getInstance();
        cal.set(2200, 1, 1);
        puse.setFailTime(cal.getTime());
        puse.setFailTime(failTime);
        sysProjUseDao.insert(puse);
        return puse;
    }
@@ -1086,20 +1089,20 @@
        taocanProjUse.setFailTime(invalidTime);
        sysProjUseDao.insert(taocanProjUse);
        //计划次数
        int surplusCount=0;
        int surplusCount = 0;
        //总余额
        Double sumBanance = 0D;
        //创建套餐绑定的项目
        List<ShoppingGoodsAssemble> assembleList = shoppingGoodsAssembleDao.selectGoodsByShoppingGoodsIdAndType(projId, ShoppingGoods.SHOPPING_GOODS_TYPE_XM);
        for (ShoppingGoodsAssemble assemble : assembleList) {
            SysProjUse tempUse = createProjuseByAssemble(order, sysOrderItem, assemble, taocanProjUse.getId());
            SysProjUse tempUse = createProjuseByAssemble(order, sysOrderItem, assemble, taocanProjUse.getId(),taocanProjUse.getFailTime());
            sumBanance += tempUse.getBalance();
            surplusCount+=tempUse.getSurplusCount();
            surplusCount += tempUse.getSurplusCount();
        }
        if(Dictionary.FLAG_NO_N.equals(taocanShoppingGoods.getIsCourse())){
        if (Dictionary.FLAG_NO_N.equals(taocanShoppingGoods.getIsCourse())) {
            //固定套餐,剩余次数等于绑定项目的次数
            taocanProjUse.setSurplusCount(surplusCount);
        }else{
        } else {
            //任选套餐剩余次数等于最大使用次数
            taocanProjUse.setSurplusCount(taocanShoppingGoods.getCarUseCount());
        }
@@ -1141,6 +1144,7 @@
    /**
     * 会员卡充值
     *
     * @param czVo
     */
    @Override
@@ -1190,7 +1194,7 @@
        orderItem.setOrderId(order.getId());
        orderItem.setOrderNo(order.getOrderNo());
        orderItem.setArrears(0D);
        ShoppingGoods shoppingGoods= shoppingGoodsDao.selectVipCzGoods();
        ShoppingGoods shoppingGoods = shoppingGoodsDao.selectVipCzGoods();
        orderItem.setGoodsId(shoppingGoods.getId());
        orderItem.setPayMethod(Dictionary.PAY_TYPE_MOENY);
        orderItem.setCashPay(czVo.getBjmoney());
@@ -1209,7 +1213,7 @@
        //设置卡项使用流水
        MoneyCardUseFlow moneyCardUseFlow=new MoneyCardUseFlow();
        MoneyCardUseFlow moneyCardUseFlow = new MoneyCardUseFlow();
        moneyCardUseFlow.setTotal(czVo.getBjmoney());
        moneyCardUseFlow.setGiftMoney(czVo.getGiftMoney());
        moneyCardUseFlow.setCarUseId(czVo.getCardId());
@@ -1218,7 +1222,7 @@
        moneyCardUseFlow.setOrderNo(order.getOrderNo());
        moneyCardUseFlow.setCreateTime(new Date());
        moneyCardUseFlow.setOperationId(user.getSuId());
        moneyCardUseFlow.setBalance(cardUser.getGiftMoney()+cardUser.getRealMoney());
        moneyCardUseFlow.setBalance(cardUser.getGiftMoney() + cardUser.getRealMoney());
        moneyCardUseFlowDao.insert(moneyCardUseFlow);
        order.setFlows(czVo.getFlows());
@@ -1274,7 +1278,8 @@
    @Override
    public void refundOrderMoney(SysOrder pageOrder) {
        SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
        // 插入订单流水
        // 修改订单状态
        changeOrderStatu(pageOrder);
        List<SysOrderItem> returnItems = new ArrayList<>();
@@ -1318,7 +1323,7 @@
                    throw new GlobleException("数据异常");
                }
                for(int i = 0; i < item.getCount(); i++) {
                for (int i = 0; i < item.getCount(); i++) {
                    SysProjUse sysProjUse = sysProjUses.get(i);
                    sysProjUse.setIsOver(Dictionary.FLAG_YES_Y);
                    sysProjUse.setStatus(Dictionary.TAOCAN_STATUS_WX);
@@ -1340,7 +1345,7 @@
                queryCardUse.setOrderItemId(item.getOldItemId());
                List<MoneyCardUse> moneyCardUses = moneyCardUseDao.selectByModel(queryCardUse);
                for(int i = 0; i < item.getCount(); i++) {
                for (int i = 0; i < item.getCount(); i++) {
                    MoneyCardUse moneyCardUse = moneyCardUses.get(i);
                    moneyCardUse.setIsOver(Dictionary.FLAG_YES_Y);
                    moneyCardUse.setStatus(Dictionary.MONEYCARD_STATUS_WX);
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjUseServiceImpl.java
@@ -11,15 +11,12 @@
import com.matrix.system.hive.bean.*;
import com.matrix.system.hive.dao.*;
import com.matrix.system.hive.plugin.util.CollectionUtils;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.plugin.util.MoneyUtil;
import com.matrix.system.hive.service.SysProjUseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.xml.crypto.Data;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -407,23 +404,7 @@
        return i;
    }
    /**
     * cardUser暂时没有用到
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int returnMoneyTc(SysProjUse sysProjUse, MoneyCardUse cardUse, Long moneyCardUseId) {
        //充值记录
        //SysRechargeFlow flow=new SysRechargeFlow();
        // 计算出套餐所有项目的剩余次数的钱
        getTotalMoney(sysProjUse, cardUse, moneyCardUseId);
        //3、套餐下的项目状态改为退款
        sysProjUse.setStatus(Dictionary.TAOCAN_STATUS_TK);
        int j = sysProjUseDao.updateProjStatus(sysProjUse);
        return j;
    }
    /*********************以下为项目使用情况操作***********************/
@@ -553,49 +534,7 @@
    }
    /**
     * 退款
     *
     * @param sysProjUse
     * @return
     */
    public int returnMoneyProj(SysProjUse sysProjUse, MoneyCardUse cardUse, Long moneyCardUseId) {
        int i = 0;
        sysProjUse = sysProjUseDao.selectById(sysProjUse.getId());
        //判断套餐是否存在欠款
        checkOrderStatu(sysProjUse);
        if (!(sysProjUse.getStatus().equals(Dictionary.TAOCAN_STATUS_YX))) {
            throw new GlobleException("不是有效项目");
        }
        if (sysProjUse.getSource().equals(Dictionary.TAOCAN_SOURCE_ZR)) {
            throw new GlobleException("转让的项目不能退款");
        }
        if (sysProjUse.getSource().equals(Dictionary.TAOCAN_SOURCE_ZS)) {
            throw new GlobleException("赠送的项目不能退款");
        }
        StringBuilder content = new StringBuilder();
        ShoppingGoodsAssemble shoppingGoodsAssemble = shoppingGoodsAssembleDao.selectById(sysProjUse.getAssembleId());
        ShoppingGoods shoppingGoods = shoppingGoodsDao.selectById(shoppingGoodsAssemble.getShoppingGoodsId());
        content.append(shoppingGoods + "退款");
        if (cardUse != null) {
            // 1、金额退到该用户的有效会籍卡中
            MoneyCardUse upCard = moneyCardUseDao.selectById(cardUse.getId());
            upCard.setRealMoney(upCard.getRealMoney() + sysProjUse.getBalance());
            ;
            moneyCardUseDao.update(upCard);
            content.append("到会籍卡(" + upCard.getCardName() + ")" + sysProjUse.getBalance() + "元")
                    .append(",余次:" + upCard.getLastCountName())
                    .append(",本金余额:" + upCard.getRealMoney())
                    .append(",有效期:" + DateUtil.dateToString(upCard.getFailTime(), DateUtil.DATE_FORMAT_MM))
                    .append(",是否赠送:" + upCard.getSourceName());
        } else {
            content.append("现金" + sysProjUse.getBalance() + "元");
        }
        sysProjUse.setStatus(Dictionary.TAOCAN_STATUS_TK);
        return sysProjUseDao.update(sysProjUse);
    }
    /**
     * 设置为有效套餐
@@ -646,25 +585,6 @@
        return new AjaxResult(AjaxResult.STATUS_SUCCESS, "操作成功");
    }
    /**
     * 退款项目
     */
    @Override
    public double getTotalMoneyProj(SysProjUse sysProjUse) {
        sysProjUse = sysProjUseDao.selectById(sysProjUse.getId());
        //判断套餐是否存在欠款
        checkOrderStatu(sysProjUse);
        if (!(sysProjUse.getStatus().equals(Dictionary.TAOCAN_STATUS_YX))) {
            throw new GlobleException("不是有效项目");
        }
        if (sysProjUse.getSource().equals(Dictionary.TAOCAN_SOURCE_ZR)) {
            throw new GlobleException("转让的项目不能退款");
        }
        if (sysProjUse.getSource().contains(Dictionary.TAOCAN_SOURCE_ZS)) {
            throw new GlobleException("赠送的项目不能退款");
        }
        return sysProjUse.getBalance();
    }
    @Override
@@ -673,9 +593,10 @@
    }
    @Override
    public List<SysProjUse> selectTaocanProjUse(Long taocanId) {
    public List<SysProjUse> selectTaocanProjUse(Long taocanId, String status) {
        SysProjUse projUse = new SysProjUse();
        projUse.setTaocanId(taocanId);
        projUse.setStatus(status);
        return sysProjUseDao.selectByModel(projUse);
    }
}
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java
@@ -74,7 +74,7 @@
     * @return
     */
    @Override
    public  int addVipDefaultCard(Long vipId){
    public MoneyCardUse addVipDefaultCard(Long vipId){
        MoneyCardUse defaultCardUse=new MoneyCardUse();
        defaultCardUse.setVipId(vipId);
        defaultCardUse.setCardName("储值卡");
@@ -83,7 +83,8 @@
        defaultCardUse.setGiftMoney(0D);
        defaultCardUse.setSource("-");
        defaultCardUse.setStatus(Dictionary.MONEYCARD_STATUS_YX);
        return  moneyCardUseDao.insert(defaultCardUse);
        moneyCardUseDao.insert(defaultCardUse);
        return  defaultCardUse;
    }
zq-erp/src/main/java/com/matrix/system/hive/statistics/OrderFlowAction.java
@@ -3,6 +3,7 @@
import com.matrix.core.pojo.AjaxResult;
import com.matrix.core.tools.DateUtil;
import com.matrix.core.tools.LogUtil;
import com.matrix.core.tools.StringUtils;
import com.matrix.core.tools.excl.ExcelSheetPO;
import com.matrix.core.tools.excl.ExcelUtil;
import com.matrix.core.tools.excl.ExcelVersion;
@@ -48,6 +49,10 @@
    @PostMapping(value = "/findOrderFlow")
    public @ResponseBody
    AjaxResult findOrderFlow(@RequestBody OrderFlowListDto orderFlowListDto) {
        if(StringUtils.isBlank(orderFlowListDto.getSort())){
            orderFlowListDto.setSort("createTime");
            orderFlowListDto.setOrder("desc");
        }
        if (!DataAuthUtil.hasAllShopAuth()) {
            QueryUtil.setQueryLimit(orderFlowListDto);
        } else {
zq-erp/src/main/java/com/matrix/system/hive/statistics/ServiceStatisticsAction.java
@@ -36,6 +36,7 @@
        if(!AppConstance.ZONGDIAN.equals(sysUsers.getShopName())){
            param.put("shopId",sysUsers.getShopId());
        }
        return AjaxResult.buildSuccessInstance(beauticianStateDao.selectItemDetail(param),
                beauticianStateDao.selectItemDetailTotal(param));
    }
zq-erp/src/main/java/com/matrix/system/hiveErp/action/ErpVipInfoController.java
@@ -117,16 +117,7 @@
            // 在session存放当前查询的客户
            MoneyCardUse cardUseInfo = cardUseService.findByVipId(vips.get(0).getId());
            if (cardUseInfo == null) {
                cardUseInfo = new MoneyCardUse();
                cardUseInfo.setVipId(vips.get(0).getId());
                cardUseInfo.setCardName("储值卡");
                cardUseInfo.setIsVipCar(Dictionary.FLAG_YES_Y);
                cardUseInfo.setRealMoney(0D);
                cardUseInfo.setGiftMoney(0D);
                cardUseInfo.setSource("-");
                cardUseInfo.setStatus(Dictionary.MONEYCARD_STATUS_YX);
                cardUseInfo.setFailTime(DateUtil.stringToDate("2050-01-01 00:00",DateUtil.DATE_FORMAT_MM));
                moneyCardUseDao.insert(cardUseInfo);
                cardUseInfo=vipInfoService.addVipDefaultCard(vips.get(0).getId());
            }
            vips.get(0).setLevelCard(cardUseInfo);
            WebUtil.getSession().setAttribute(SystemConstance.CURRENT_CUSTOMER, vips.get(0));
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/YuyueAction.java
@@ -4,24 +4,16 @@
import com.matrix.biz.dao.BizUserDao;
import com.matrix.component.rabbitmq.RabiitMqTemplate;
import com.matrix.component.redis.RedisUserLoginUtils;
import com.matrix.core.constance.MatrixConstance;
import com.matrix.core.exception.GlobleException;
import com.matrix.core.pojo.AjaxResult;
import com.matrix.core.pojo.PaginationVO;
import com.matrix.core.pojo.VerifyResult;
import com.matrix.core.tools.DateUtil;
import com.matrix.core.tools.LogUtil;
import com.matrix.core.tools.StringUtils;
import com.matrix.core.tools.WebUtil;
import com.matrix.system.app.dto.ServiceOrderListDto;
import com.matrix.system.app.mapper.SysBeauticianStateMapper;
import com.matrix.system.app.mapper.SysProjServiceMapper;
import com.matrix.system.app.mapper.SysProjUseMapper;
import com.matrix.system.app.vo.*;
import com.matrix.system.common.bean.SysUsers;
import com.matrix.system.common.dao.SysUsersDao;
import com.matrix.system.common.interceptor.HostInterceptor;
import com.matrix.system.common.tools.DataAuthUtil;
import com.matrix.system.common.tools.LocationUtil;
import com.matrix.system.constance.Dictionary;
import com.matrix.system.hive.bean.*;
@@ -30,14 +22,11 @@
import com.matrix.system.hive.service.*;
import com.matrix.system.shopXcx.api.dto.ErpServiceCommentDto;
import com.matrix.system.shopXcx.api.dto.ErpServiceOrderListDto;
import com.matrix.system.shopXcx.api.vo.ErpOrderDetailItemVo;
import com.matrix.system.shopXcx.api.vo.ErpServiceOrderListVo;
import com.matrix.system.shopXcx.bean.ShopProduct;
import com.matrix.system.shopXcx.dao.ShopProductDao;
import com.matrix.system.shopXcx.dao.ShopSkuDao;
import com.matrix.system.shopXcx.dto.YYDayOfWeek;
import com.matrix.system.shopXcx.dto.YYmonth;
import com.matrix.system.shopXcx.mqTask.DTO.UserProjInfo;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -245,7 +234,7 @@
        if (CollectionUtils.isNotEmpty(serviceTcVos)) {
            serviceTcVos.forEach(item -> {
                List<SysProjUse> sysProjUses = projUseService.selectTaocanProjUse(item.getId());
                List<SysProjUse> sysProjUses = projUseService.selectTaocanProjUse(item.getId(), queryUse.getStatus());
                List<ServiceProjVo> taocanProj = SysProjUseMapper.INSTANCE.entityListToProjVoList(sysProjUses);
                item.setProj(taocanProj);
            });
zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseDao.xml
@@ -20,6 +20,7 @@
        <result property="isVipCar" column="is_vip_car"/>
        <result property="remark" column="remark"/>
        <result property="cardName" column="card_name"/>
        <result property="orderId" column="orderId"/>
        <!-- 对应会员信息 -->
        <association property="vipInfo" javaType="SysVipInfo"
@@ -366,6 +367,7 @@
        select
        a.id,
        a.order_item_id,
        d.id AS orderId,
        a.use_total,
        a.last_count,
        a.real_money,
@@ -380,7 +382,10 @@
        a.remark,
        a.card_name
        from money_card_use a
        where vip_id = #{record.vipId}
        left join shopping_goods b on a.goods_id=b.id
        left join sys_order_item c on a.ORDER_ITEM_ID=c.id
        left join sys_order d on c.ORDER_ID=d.id
        where a.vip_id = #{record.vipId}
        <if test="record!=null">
            <if test="record.orderItemId != null and record.orderItemId !='' ">
                and a.order_item_id = #{record.orderItemId}
@@ -420,7 +425,9 @@
        select count(*)
        from money_card_use a
        left join shopping_goods b on a.goods_id=b.id
        where vip_id = #{record.vipId}
        left join sys_order_item c on a.ORDER_ITEM_ID=c.id
        left join sys_order d on c.ORDER_ID=d.id
        where a.vip_id = #{record.vipId}
        <if test="record!=null">
            <if test="record.orderItemId != null and record.orderItemId !='' ">
                and a.order_item_id = #{record.orderItemId}
zq-erp/src/main/resources/mybatis/mapper/hive/SysBeauticianStateDao.xml
@@ -410,6 +410,7 @@
    <select id="selectItemDetail" resultType="java.util.HashMap" parameterType="java.util.HashMap">
        select
        f.SHOP_NAME,
        b.yy_time,
        b.consume_time,
        b.SERVICE_NO,
        d.su_name,
@@ -420,7 +421,8 @@
        a.COUNT,
        h.PRICE,
        h.SOURCE,
        a.STATE
        a.STATE,
        a.extract
        from sys_beautician_state a
        left join sys_proj_services b on a.SERVICES_ID=b.ID
        left join shopping_goods c on a.proj_id=c.id
zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderFlowDao.xml
@@ -125,8 +125,11 @@
            <if test="record.shopId != null and record.shopId != ''">
                and a.shop_id=#{record.shopId}
            </if>
        </where>
        <if test="record.sort !=null">
            order by
            a.${record.sort} ${record.order}
        </if>
        <if test="record.offset >=0  and record.limit >0">
            limit
            #{record.offset},#{record.limit}
zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml
@@ -31,6 +31,7 @@
        <result property="deductionNum" column="deductionNum"/>
        <result property="isCourse" column="is_course"/>
        <result property="timeLength" column="time_length"/>
        <result property="orderId" column="orderId"/>
        <!-- 对应项目信息-->
        <association property="projInfo" javaType="ShoppingGoods"
                     resultMap="com.matrix.system.hive.dao.ShoppingGoodsDao.ShoppingGoodsMap"/>
@@ -331,10 +332,13 @@
    <select id="selectInPage" resultMap="SysProjUseMap">
        select
        a.*,
        d.id as orderId,
        b.TIME_LENGTH,
        b.img
        from sys_proj_use a
        left join shopping_goods b on a.proj_id=b.id
        left join sys_order_item c on a.ORDER_ITEM_ID=c.id
        left join sys_order d on c.ORDER_ID=d.id
        where 1=1
        <if test="record!=null">
            <if test="record.id != null and record.id !='' ">
@@ -440,70 +444,81 @@
    <!-- 查询总条数 -->
    <select id="selectTotalRecord" resultType="java.lang.Integer">
        select count(*)
        from sys_proj_use
        from sys_proj_use a
        left join shopping_goods b on a.proj_id=b.id
        left join sys_order_item c on a.ORDER_ITEM_ID=c.id
        left join sys_order d on c.ORDER_ID=d.id
        where 1=1
        <if test="record!=null">
            <if test="record.id != null and record.id !='' ">
                and ID = #{record.id}
                and a.ID = #{record.id}
            </if>
            <if test="record.queryKey != null and record.queryKey !='' ">
                and (instr(b.name, #{record.queryKey}) or instr(b.zjm, #{record.queryKey}) or instr(goods_no, #{record.queryKey}))
            </if>
            <if test="record.orderItemId != null and record.orderItemId !='' ">
                and ORDER_ITEM_ID = #{record.orderItemId}
                and a.ORDER_ITEM_ID = #{record.orderItemId}
            </if>
            <if test="record.projId != null and record.projId !='' ">
                and PROJ_ID = #{record.projId}
                and a.PROJ_ID = #{record.projId}
            </if>
            <if test="record.surplusCount != null and record.surplusCount !='' ">
                and SURPLUS_COUNT = #{record.surplusCount}
                and a.SURPLUS_COUNT = #{record.surplusCount}
            </if>
            <if test="record.isOver != null and record.isOver !='' ">
                and IS_OVER = #{record.isOver}
                and a.IS_OVER = #{record.isOver}
            </if>
            <!-- 查询具体某一个套餐的使用情况 -->
            <if
                    test="record.taocanId != null and record.taocanId !=-1 and record.taocanId !=-2">
                and TAOCAN_ID = #{record.taocanId}
                and a.TAOCAN_ID = #{record.taocanId}
            </if>
            <!-- 查询所有的项目使用情况 -->
            <if test="record.taocanId != null and record.taocanId ==-1 ">
                and TAOCAN_ID IS NULL
                and a.TAOCAN_ID IS NULL
            </if>
            <!-- 查询所有的套餐使用情况 -->
            <if test="record.taocanId != null and record.taocanId ==-2 ">
                and TAOCAN_ID IS NOT NULL
                and a.TAOCAN_ID IS NOT NULL
            </if>
            <if test="record.vipId != null and record.vipId !='' ">
                and VIP_ID = #{record.vipId}
                and a.VIP_ID = #{record.vipId}
            </if>
            <if test="record.failTime != null  ">
                and a.FAIL_TIME = #{record.failTime}
            </if>
            <if test="record.targetFailTime != null  ">
                and date_format(#{record.targetFailTime}, '%Y-%m-%d') > date_format(a.FAIL_TIME, '%Y-%m-%d')
            </if>
            <if test="record.price != null and record.price !='' ">
                and PRICE = #{record.price}
                and a.PRICE = #{record.price}
            </if>
            <if test="record.assembleId != null and record.assembleId !='' ">
                and ASSEMBLE_ID = #{record.assembleId}
                and a.ASSEMBLE_ID = #{record.assembleId}
            </if>
            <if test="record.source != null and record.source !='' ">
                and SOURCE like concat('%',#{record.source},'%')
                and a.SOURCE like concat('%',#{record.source},'%')
            </if>
            <if test="record.status != null and record.status !='' ">
                and STATUS = #{record.status}
                and a.STATUS = #{record.status}
            </if>
            <if test="record.platformFlag != null and record.platformFlag !='' ">
                and PLATFORM_FLAG = #{record.platformFlag}
            </if>
            <if test="record.projName != null and record.projName !='' ">
                and PROJ_NAME like concat('%',#{record.projName},'%')
                and a.PLATFORM_FLAG = #{record.platformFlag}
            </if>
            <if test="record.type != null and record.type !='' ">
                and type = #{record.type}
                and a.type = #{record.type}
            </if>
            <if test="record.projName != null and record.projName !='' ">
                and a.PROJ_NAME like concat('%',#{record.projName},'%')
            </if>
            <if test="record.balance != null and record.balance !='' ">
                and balance = #{record.balance}
                and a.balance = #{record.balance}
            </if>
            <if test="record.remark != null and record.remark !='' ">
                and remark = #{record.remark}
                and a.remark = #{record.remark}
            </if>
            <if test="record.isCourse != null and record.isCourse !='' ">
                and   is_course = #{record.isCourse},
                and  a.is_course = #{record.isCourse},
            </if>
        </if>
    </select>
zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/jyls.html
@@ -111,7 +111,7 @@
    <el-row class="table-style"  >
        <el-table id="proj" :data="table.rows"  :height="height" stripe>
        <el-table id="proj" :data="table.rows"  :height="height" stripe @sort-change="sortChange">
            <el-table-column
                    prop="orderNo"
                    label="订单号"
@@ -125,16 +125,19 @@
            </el-table-column>
            <el-table-column
                    prop="createTime"
                    sortable="custom"
                    label="交易时间"
                    show-overflow-tooltip
                    width="180">
            </el-table-column>
            <el-table-column
                    prop="flowType"
                    sortable="custom"
                    label="交易类型">
            </el-table-column>
            <el-table-column
                    prop="amount"
                    sortable="custom"
                    label="交易金额">
            </el-table-column>
            <el-table-column
@@ -143,6 +146,7 @@
            </el-table-column>
            <el-table-column
                    prop="payMethod"
                    sortable="custom"
                    label="支付方式">
            </el-table-column>
            <el-table-column
@@ -253,6 +257,17 @@
            resetForm(formName) {
                this.$refs[formName].resetFields();
            },
            sortChange:function (column){
                if(column.order){
                    if(column.order.indexOf("desc")){
                        this.form.order="desc";
                    }else{
                        this.form.order="asc";
                    }
                    this.form.sort=column.prop;
                    this.loadData();
                }
            },
            loadData:function(){
                let _this = this;
                let data=_this.getRequestParam();
@@ -270,16 +285,17 @@
            },
            getRequestParam(){
                let _this = this;
             return   {
                return   {
                    name:_this.form.name,
                    payMethod:_this.form.payMethod,
                    flowType:_this.form.flowType,
                    orderNo:_this.form.orderNo,
                    oprationMan:_this.form.oprationMan,
                    queryKey:_this.form.queryKey,
                    shopId:_this.form.shopId,
                    startTime:_this.form.datetimeArr?moment(_this.form.datetimeArr[0]).format("YYYY-MM-DD HH:mm"):'',
                    endTime:_this.form.datetimeArr?moment(_this.form.datetimeArr[1]).format("YYYY-MM-DD HH:mm"):'',
                    order:_this.form.order,
                    sort:_this.form.sort,
                }
            },
            search:function(){
zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/statistics-projSercice-item.html
@@ -85,13 +85,15 @@
                <tr>
                    <th data-formatter="MGrid.indexfn" data-align="center"  data-width="30px" >序号</th>
                    <th data-field="SHOP_NAME" >门店</th>
                    <th data-field="consume_time"  data-formatter="MGrid.getTime"  data-sortable="true"   >服务日期</th>
                    <th data-field="yy_time"  data-formatter="MGrid.getTime"  data-sortable="true"   >预约时间</th>
                    <th data-field="consume_time"  data-formatter="MGrid.getTime"  data-sortable="true"   >划扣时间</th>
                    <th data-field="SERVICE_NO" >服务单号</th>
                    <th data-field="PROJ_NAME" >服务名称</th>
                    <th data-field="TYPE_NAME" >分类</th>
                    <th data-field="VIP_NAME" >客户名</th>
                      <th data-field="COUNT"  data-sortable="true"     >次数</th>
                      <th data-field="PRICE"  data-sortable="true"       >单价</th>
                      <th data-field="COUNT"  data-sortable="true">次数</th>
                      <th data-field="PRICE"  data-sortable="true">划扣单价</th>
                      <th data-field="extract"  data-sortable="true"  >提成</th>
                      <th data-field="su_name" >美疗师</th>
                      <th data-field="SOURCE" >来源</th>
                </tr>
@@ -115,7 +117,9 @@
            //有删除权限
            var delUrl="";
            myGrid=MGrid.initGrid({
                 url:basePath+"/admin/serviceStatistics/showList"
                 url:basePath+"/admin/serviceStatistics/showList",
                sortName:"yy_time",
                sortOrder:"desc"
             });
        });
        
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip.html
@@ -257,6 +257,7 @@
                                        <el-button matrix:btn="vipInfo-wuxiao" v-if="scope.row.status!='无效'" type="text" size="small" @click="tabProjInvalid(scope.$index, scope.row)">无效</el-button>
                                        <el-button matrix:btn="vipInfo-dongjie" v-if="scope.row.status!='冻结'" type="text" size="small" @click="tabProjCold(scope.$index, scope.row)">冻结</el-button>
                                        <el-button matrix:btn="vipInfo-cardEdit" type="text" size="small" @click="tabProjEdit(scope.$index, scope.row)">编辑</el-button>
                                        <el-button type="text"  @click="openOrder(scope.$index, scope.row)" size="small">订单</el-button>
                                        <el-button  type="text" size="small" @click="openProjUseFlow(scope.$index, scope.row)">操作记录</el-button>
                                    </template>
                                </el-table-column>
@@ -293,6 +294,7 @@
                                        <el-button matrix:btn="vipInfo-wuxiao" v-if="scope.row.status!='无效' && scope.row.taocanId == null" type="text" size="small" @click="tabProjInvalid(scope.$index, scope.row)">无效</el-button>
                                        <el-button matrix:btn="vipInfo-dongjie" v-if="scope.row.status!='冻结' && scope.row.taocanId == null" type="text" size="small" @click="tabProjCold(scope.$index, scope.row)">冻结</el-button>
                                        <el-button matrix:btn="vipInfo-cardEdit" v-if="scope.row.taocanId == null" type="text" size="small" @click="tabProjEdit(scope.$index, scope.row)">编辑</el-button>
                                        <el-button type="text" v-if="scope.row.orderId != null"  @click="openOrder(scope.$index, scope.row)" size="small">订单</el-button>
                                        <el-button  type="text" size="small" @click="openProjUseFlow(scope.$index, scope.row)">操作记录</el-button>
                                    </template>
                                </el-table-column>
@@ -333,10 +335,6 @@
                                        label="状态">
                                </el-table-column>
                                <el-table-column
                                        prop="isVipCar"
                                        label="是否是会籍卡"  :formatter="cardIsVipFormatter">
                                </el-table-column>
                                <el-table-column
                                        prop="isOver"
                                        label="是否使用完成" :formatter="cardIsOrderFormatter">
                                </el-table-column>
@@ -350,10 +348,11 @@
                                </el-table-column>
                                <el-table-column label="操作" fixed="right" width="160">
                                    <template slot-scope="scope">
                                        <el-button matrix:btn="vipInfo-youxiao" v-if="scope.row.status!='有效'" type="text" size="small" @click="tabProjValid(scope.$index, scope.row)">有效</el-button>
                                        <el-button matrix:btn="vipInfo-wuxiao" v-if="scope.row.status!='无效'" type="text" size="small" @click="tabProjInvalid(scope.$index, scope.row)">无效</el-button>
                                        <el-button matrix:btn="vipInfo-dongjie" v-if="scope.row.status!='冻结'" type="text" size="small" @click="tabProjCold(scope.$index, scope.row)">冻结</el-button>
                                        <el-button matrix:btn="vipInfo-youxiao" v-if="scope.row.status!='有效' && scope.row.isVipCar =='N' " type="text" size="small" @click="tabProjValid(scope.$index, scope.row)">有效</el-button>
                                        <el-button matrix:btn="vipInfo-wuxiao" v-if="scope.row.status!='无效' && scope.row.isVipCar =='N'  " type="text" size="small" @click="tabProjInvalid(scope.$index, scope.row)">无效</el-button>
                                        <el-button matrix:btn="vipInfo-dongjie" v-if="scope.row.status!='冻结' && scope.row.isVipCar =='N' " type="text" size="small" @click="tabProjCold(scope.$index, scope.row)">冻结</el-button>
                                        <el-button matrix:btn="vipInfo-cardEdit" type="text" size="small" @click="tabProjEdit(scope.$index, scope.row)">编辑</el-button>
                                        <el-button type="text"  v-if="scope.row.isVipCar =='N'"  @click="openOrder(scope.$index, scope.row)" size="small">订单</el-button>
                                        <el-button  type="text" size="small" @click="openMoneyCardUseFlow(scope.$index, scope.row)">操作记录</el-button>
                                    </template>
                                </el-table-column>
@@ -717,6 +716,15 @@
            }
        },
        methods : {
            //打开订单详情页面
            openOrder(index,row){
                layer.full(layer.open({
                    type : 2,
                    title : "订单详情",
                    maxmin : true,
                    content : [ basePath + '/admin/order/orderItem?id=' + row.orderId ]
                }));
            },
            querySearch(queryString, cb) {
                $.AjaxProxy({
                    p: {
zq-erp/src/main/resources/templates/views/admin/hive/statistics/jyls.html
@@ -98,7 +98,7 @@
    <el-row class="table-style"  >
        <el-table id="proj" :data="table.rows"  :height="height" stripe>
        <el-table id="proj" :data="table.rows"  :height="height" stripe @sort-change="sortChange">
            <el-table-column
                    prop="orderNo"
                    label="订单号"
@@ -112,16 +112,19 @@
            </el-table-column>
            <el-table-column
                    prop="createTime"
                    sortable="custom"
                    label="交易时间"
                    show-overflow-tooltip
                    width="180">
            </el-table-column>
            <el-table-column
                    prop="flowType"
                    sortable="custom"
                    label="交易类型">
            </el-table-column>
            <el-table-column
                    prop="amount"
                    sortable="custom"
                    label="交易金额">
            </el-table-column>
            <el-table-column
@@ -130,6 +133,7 @@
            </el-table-column>
            <el-table-column
                    prop="payMethod"
                    sortable="custom"
                    label="支付方式">
            </el-table-column>
            <el-table-column
@@ -191,6 +195,8 @@
                orderNo:'',
                oprationMan:'',
                queryKey:'',
                order:'',
                sort:''
            },
            height:'calc(100vh - 240px)',
            flowTypeList:[
@@ -226,6 +232,17 @@
            resetForm(formName) {
                this.$refs[formName].resetFields();
            },
            sortChange:function (column){
                if(column.order){
                    if(column.order.indexOf("desc")){
                        this.form.order="desc";
                    }else{
                        this.form.order="asc";
                    }
                    this.form.sort=column.prop;
                    this.loadData();
                }
            },
            loadData:function(){
                let _this = this;
                let data=_this.getRequestParam();
@@ -240,6 +257,21 @@
                        _this.table.total=data.total;
                    }
                });
            },
            getRequestParam(){
                let _this = this;
                return   {
                    name:_this.form.name,
                    payMethod:_this.form.payMethod,
                    flowType:_this.form.flowType,
                    orderNo:_this.form.orderNo,
                    oprationMan:_this.form.oprationMan,
                    queryKey:_this.form.queryKey,
                    startTime:_this.form.datetimeArr?moment(_this.form.datetimeArr[0]).format("YYYY-MM-DD HH:mm"):'',
                    endTime:_this.form.datetimeArr?moment(_this.form.datetimeArr[1]).format("YYYY-MM-DD HH:mm"):'',
                    order:_this.form.order,
                    sort:_this.form.sort,
                }
            },
            search:function(){
                this.table.currentPage=1;
@@ -258,19 +290,6 @@
                    maxmin : true,
                    content : [ basePath + '/admin/order/orderItem?id=' + row.orderId ]
                }));
            },
            getRequestParam(){
                let _this = this;
                return   {
                    name:_this.form.name,
                    payMethod:_this.form.payMethod,
                    flowType:_this.form.flowType,
                    orderNo:_this.form.orderNo,
                    oprationMan:_this.form.oprationMan,
                    queryKey:_this.form.queryKey,
                    startTime:_this.form.datetimeArr?moment(_this.form.datetimeArr[0]).format("YYYY-MM-DD HH:mm"):'',
                    endTime:_this.form.datetimeArr?moment(_this.form.datetimeArr[1]).format("YYYY-MM-DD HH:mm"):'',
                }
            },
            //导出
          exportExcel(){
zq-erp/src/main/resources/templates/views/admin/hive/statistics/statistics-projSercice-item.html
@@ -77,15 +77,18 @@
            <thead>
                <tr>
                    <th data-formatter="MGrid.indexfn" data-align="center"  data-width="30px" >序号</th>
                    <th data-field="consume_time"  data-formatter="MGrid.getTime"  data-sortable="true"   >服务日期</th>
                    <th data-field="SHOP_NAME" >门店</th>
                    <th data-field="yy_time"  data-formatter="MGrid.getTime"  data-sortable="true"   >预约时间</th>
                    <th data-field="consume_time"  data-formatter="MGrid.getTime"  data-sortable="true"   >划扣时间</th>
                    <th data-field="SERVICE_NO" >服务单号</th>
                    <th data-field="PROJ_NAME" >服务名称</th>
                    <th data-field="TYPE_NAME" >分类</th>
                    <th data-field="VIP_NAME" >客户名</th>
                      <th data-field="COUNT"  data-sortable="true"     >次数</th>
                      <th data-field="PRICE"  data-sortable="true"       >单价</th>
                      <th data-field="su_name" >美疗师</th>
                      <th data-field="SOURCE" >来源</th>
                    <th data-field="COUNT"  data-sortable="true"     >次数</th>
                    <th data-field="PRICE"  data-sortable="true"       >划扣单价</th>
                    <th data-field="extract"  data-sortable="true"  >提成</th>
                    <th data-field="su_name" >美疗师</th>
                    <th data-field="SOURCE" >来源</th>
                </tr>
            </thead>
        </table>
@@ -107,7 +110,9 @@
            //有删除权限
            var delUrl="";
            myGrid=MGrid.initGrid({
                 url:basePath+"/admin/serviceStatistics/showList"
                url:basePath+"/admin/serviceStatistics/showList",
                sortName:"yy_time",
                sortOrder:"desc"
             });
        });