From 608f4bd5ff1a0024c04af0973b20ed360d1d16a0 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Tue, 09 Nov 2021 11:34:52 +0800
Subject: [PATCH] fix
---
zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java | 50 ++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 40 insertions(+), 10 deletions(-)
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java
index afec062..ff89cae 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java
@@ -174,8 +174,7 @@
boolean flag = projServicesService.skipServiceOrderStep(Dictionary.SALE_MAN_IS_CONSUME_ACHIEVE);
-
-
+ Set<Long> beautyIds = new HashSet<>();
for (SysBeauticianState beauticianState : beauticianStateList) {
// 是否第一次计算改美疗师
boolean isFirst = true;
@@ -222,13 +221,13 @@
// }
}
- 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())) {
@@ -244,11 +243,14 @@
achieveNew.setProjTime(beauticianState.getExcTime());
isFirst = false;
}
+
+ beautyIds.add(achieveNew.getBeaultId());
achieveNewList.add(achieveNew);
}
if (CollectionUtils.isNotEmpty(achieveNewList)) {
achieveNewDao.batchInsert(achieveNewList);
+ achieveNumOfPeople(beautyIds, projServices.getVipId());
}
}
@@ -297,9 +299,31 @@
}
}
+ /**
+ *
+ * 合并订单与服务单人头逻辑,即每一个客户对美疗师/顾问来说,每一天同一个客户只算一个人头。
+ * 如若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()) {
@@ -309,13 +333,19 @@
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());
+ }
}
}
@@ -354,7 +384,7 @@
}
// 设置顾问人头业绩
- saleAchieveNumOfPeople(achieveNew);
+// saleAchieveNumOfPeople(achieveNew);
achieveNew.setOrderType(Dictionary.ORDER_TYPE_SEAL);
achieveNew.setOrderId(pageOrder.getId());
--
Gitblit v1.9.1