xiaoyong931011
2021-04-21 a3cddf45e9c7c590e8fe034e951189c49548f29f
zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java
@@ -1,5 +1,6 @@
package com.matrix.system.hive.service.imp;
import cn.hutool.core.collection.CollUtil;
import com.matrix.core.constance.MatrixConstance;
import com.matrix.core.exception.GlobleException;
import com.matrix.core.pojo.PaginationVO;
@@ -21,6 +22,8 @@
import com.matrix.system.hive.dao.SysProjUseDao;
import com.matrix.system.hive.plugin.util.CollectionUtils;
import com.matrix.system.hive.service.AchieveNewService;
import com.matrix.system.hive.service.SysProjServicesService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -45,6 +48,9 @@
    @Autowired
    private SysProjUseDao sysProjUseDao;
    @Autowired
    private SysProjServicesService projServicesService;
    @Override
    public int add(AchieveNew achieveNew) {
@@ -164,6 +170,9 @@
        Long achieveId = projServices.getCreateStaffId();
        // 下单人是否计算消耗业绩
        boolean flag = projServicesService.skipServiceOrderStep(Dictionary.SALE_MAN_IS_CONSUME_ACHIEVE);
        for (SysBeauticianState beauticianState : beauticianStateList) {
            // 是否第一次计算改美疗师
            boolean isFirst = true;
@@ -187,7 +196,26 @@
            achieveNew.setShopId(projServices.getShopId());
            achieveNew.setCompanyId(projServices.getCompanyId());
            achieveNew.setShoppingGoodsId(projUse.getProjId());
            achieveNew.setNumberOfPeople(1D / size);
            if (flag) {
//                if (!achieveId.equals(beauticianState.getStaffId())) {
                    AchieveNew saleMan = new AchieveNew();
                    BeanUtils.copyProperties(achieveNew, saleMan);
                    saleMan.setBeaultId(achieveId);
                    saleAchieveNumOfPeople(saleMan);
                    achieveNewList.add(saleMan);
//                }
            }
            List<AchieveNew> beautyList = achieveNewDao.selectBeautyManAchieveList(beauticianState.getStaffId(), projServices.getVipId(), new Date());
            if (CollUtil.isEmpty(beautyList)) {
                achieveNew.setNumberOfPeople(1D / size);
            } else {
                achieveNew.setNumberOfPeople(1D / (size + beautyList.size()));
                achieveNewDao.updateAchieveNumOfPeople(beautyList, achieveNew.getNumberOfPeople());
            }
            achieveNew.setProjNum(1);
            if (StringUtils.isNotBlank(beauticianState.getExtract())) {
                achieveNew.setProjPercentage(Double.parseDouble(beauticianState.getExtract()));
@@ -209,6 +237,20 @@
            achieveNewDao.batchInsert(achieveNewList);
        }
    }
    /**
     * 顾问人头业绩
     * @param achieveNew
     */
    private void saleAchieveNumOfPeople(AchieveNew achieveNew) {
        List<AchieveNew> saleList = achieveNewDao.selectSaleManAchieveList(achieveNew.getSaleId(), achieveNew.getVipId(), new Date());
        if (CollUtil.isEmpty(saleList)) {
            achieveNew.setNumberOfPeople(1D);
        } else {
            achieveNew.setNumberOfPeople(1D / (1D + saleList.size()));
            achieveNewDao.updateAchieveNumOfPeople(saleList, achieveNew.getNumberOfPeople());
        }
    }
    @Override
@@ -265,7 +307,8 @@
        }
        // 设置顾问人头业绩
        saleAchieveNumOfPeople(achieveNew);
        achieveNew.setOrderType(Dictionary.ORDER_TYPE_SEAL);
        achieveNew.setOrderId(pageOrder.getId());