|  |  |  | 
|---|
|  |  |  | boolean flag = projServicesService.skipServiceOrderStep(Dictionary.SALE_MAN_IS_CONSUME_ACHIEVE); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Set<Long> beautyIds = new HashSet<>(); | 
|---|
|  |  |  | for (SysBeauticianState beauticianState : beauticianStateList) { | 
|---|
|  |  |  | // 是否第一次计算改美疗师 | 
|---|
|  |  |  | boolean isFirst = true; | 
|---|
|  |  |  | 
|---|
|  |  |  | //                } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //            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.setProjTime(beauticianState.getExcTime()); | 
|---|
|  |  |  | isFirst = false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | beautyIds.add(achieveNew.getBeaultId()); | 
|---|
|  |  |  | achieveNewList.add(achieveNew); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (CollectionUtils.isNotEmpty(achieveNewList)) { | 
|---|
|  |  |  | achieveNewDao.batchInsert(achieveNewList); | 
|---|
|  |  |  | achieveNumOfPeople(beautyIds, projServices.getVipId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * 合并订单与服务单人头逻辑,即每一个客户对美疗师/顾问来说,每一天同一个客户只算一个人头。 | 
|---|
|  |  |  | * 如若A给客户X下订单,并给客户X服务,对A来说只算一个人头 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private void achieveNumOfPeople(Set<Long> beautyIds, Long vipId) { | 
|---|
|  |  |  | for (Long userId : beautyIds) { | 
|---|
|  |  |  | double num; | 
|---|
|  |  |  | List<AchieveNew> achieveNewList = achieveNewDao.selectBeautyManAchieveList(userId, vipId, new Date()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (CollUtil.isEmpty(achieveNewList)) { | 
|---|
|  |  |  | num = 1D; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | num = 1D / achieveNewList.size(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | achieveNewDao.updateAchieveNumOfPeople(achieveNewList, num); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void addAchaeveByOrder(SysOrder pageOrder) { | 
|---|
|  |  |  | List<AchieveNew> achieveNewList = new ArrayList<>(); | 
|---|
|  |  |  | Set<Long> beautyIds = new HashSet<>(); | 
|---|
|  |  |  | if (CollectionUtils.isNotEmpty(pageOrder.getItems())) { | 
|---|
|  |  |  | for (SysOrderItem orderItem : pageOrder.getItems()) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | if (achieveNew !=null   && achieveNew.getGoodsCash()!=null) { | 
|---|
|  |  |  | buildAchieve(pageOrder,  orderItem, achieveNew); | 
|---|
|  |  |  | achieveNewList.add(achieveNew); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | beautyIds.add(achieveNew.getBeaultId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (CollectionUtils.isNotEmpty(achieveNewList)) { | 
|---|
|  |  |  | achieveNewDao.batchInsert(achieveNewList); | 
|---|
|  |  |  | if (!beautyIds.isEmpty()) { | 
|---|
|  |  |  | achieveNumOfPeople(beautyIds, pageOrder.getVipId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 设置顾问人头业绩 | 
|---|
|  |  |  | saleAchieveNumOfPeople(achieveNew); | 
|---|
|  |  |  | //        saleAchieveNumOfPeople(achieveNew); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | achieveNew.setOrderType(Dictionary.ORDER_TYPE_SEAL); | 
|---|
|  |  |  | achieveNew.setOrderId(pageOrder.getId()); | 
|---|