From 1eedb8a57c2eb5c9953dcf058184ebdc6987fbf5 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Tue, 24 May 2022 15:14:21 +0800
Subject: [PATCH] Merge branch 'feature/订单服务单代码改造' into alpha
---
zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java | 99 +++++++++++++++++++++++++++----------------------
1 files changed, 55 insertions(+), 44 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 f23d9a1..2af56ad 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
@@ -16,6 +16,7 @@
import com.matrix.system.common.dao.BusParameterSettingsDao;
import com.matrix.system.common.dao.SysUsersDao;
import com.matrix.system.constance.Dictionary;
+import com.matrix.system.enums.BooleanEnum;
import com.matrix.system.hive.bean.*;
import com.matrix.system.hive.dao.*;
import com.matrix.system.hive.plugin.util.CollectionUtils;
@@ -164,7 +165,7 @@
@Override
- public void addAchieveByServiceOrder(SysProjServices projServices) {
+ public void addAchieveByServiceOrder(SysProjServices projServices) {
List<AchieveNew> achieveNewList = new ArrayList<>();
List<SysBeauticianState> beauticianStateList = sysBeauticianStateDao.selectBySerIds(projServices.getId());
int size = beauticianStateList.size();
@@ -188,16 +189,16 @@
// 是否为赠送业绩
if (Dictionary.TAOCAN_SOURCE_ZS.equals(projUse.getSource())) {
- achieveNew.setFreeConsume(projUse.getPrice()*beauticianState.getCount());
+ achieveNew.setFreeConsume(projUse.getPrice() * beauticianState.getCount());
//计算提成
achieveNew.setProjPercentage(
- calculationProjPercentage(AchieveRuleItem.ACHIEVE_TYPE_ZS,achieveNew.getFreeConsume(),beauticianState.getProjId()));
+ calculationProjPercentage(AchieveRuleItem.ACHIEVE_TYPE_ZS, achieveNew.getFreeConsume(), beauticianState.getProjId()));
} else {
- achieveNew.setHisConsume(new BigDecimal(projUse.getPrice()*beauticianState.getCount()).setScale(2, BigDecimal.ROUND_HALF_DOWN).doubleValue());
+ achieveNew.setHisConsume(new BigDecimal(projUse.getPrice() * beauticianState.getCount()).setScale(2, BigDecimal.ROUND_HALF_DOWN).doubleValue());
//计算提成
achieveNew.setProjPercentage(
- calculationProjPercentage(AchieveRuleItem.ACHIEVE_TYPE_BJ,achieveNew.getHisConsume(),beauticianState.getProjId()));
+ calculationProjPercentage(AchieveRuleItem.ACHIEVE_TYPE_BJ, achieveNew.getHisConsume(), beauticianState.getProjId()));
}
achieveNew.setT2(projUse.getSource());
achieveNew.setDatatime(new Date());
@@ -211,14 +212,14 @@
if (flag) {
// if (!achieveId.equals(beauticianState.getStaffId())) {
- AchieveNew saleManAchieve = new AchieveNew();
- BeanUtils.copyProperties(achieveNew, saleManAchieve);
- saleManAchieve.setBeaultId(achieveId);
+ AchieveNew saleManAchieve = new AchieveNew();
+ BeanUtils.copyProperties(achieveNew, saleManAchieve);
+ saleManAchieve.setBeaultId(achieveId);
- saleAchieveNumOfPeople(saleManAchieve);
- //销售人员不计算项目提成
- saleManAchieve.setProjPercentage(0D);
- achieveNewList.add(saleManAchieve);
+ saleAchieveNumOfPeople(saleManAchieve);
+ //销售人员不计算项目提成
+ saleManAchieve.setProjPercentage(0D);
+ achieveNewList.add(saleManAchieve);
// }
}
@@ -260,34 +261,35 @@
AchieveRuleDao achieveRuleDao;
private Double calculationProjPercentage(int type, Double consume, Long goodsId) {
- ShoppingGoods shoppingGoods = shoppingGoodsDao.selectById(goodsId);
- if(shoppingGoods.getAchieveRuleId()!=null){
+ ShoppingGoods shoppingGoods = shoppingGoodsDao.selectById(goodsId);
+ if (shoppingGoods.getAchieveRuleId() != null) {
- AchieveRule achieveRule = achieveRuleDao.selectById(shoppingGoods.getAchieveRuleId());
- if(achieveRule!=null){
- List<AchieveRuleItem> achieveRuleItems = JSONUtil.toList(JSONUtil.parseArray(achieveRule.getRules()), AchieveRuleItem.class);
- double percentage=0D;
- for(AchieveRuleItem item:achieveRuleItems){
- if(item.getAchieveType()==type
- && (item.getLower() == consume
- || (item.getLower()< consume && consume < item.getUpper() ))){
+ AchieveRule achieveRule = achieveRuleDao.selectById(shoppingGoods.getAchieveRuleId());
+ if (achieveRule != null) {
+ List<AchieveRuleItem> achieveRuleItems = JSONUtil.toList(JSONUtil.parseArray(achieveRule.getRules()), AchieveRuleItem.class);
+ double percentage = 0D;
+ for (AchieveRuleItem item : achieveRuleItems) {
+ if (item.getAchieveType() == type
+ && (item.getLower() == consume
+ || (item.getLower() < consume && consume < item.getUpper()))) {
- if(AchieveRuleItem.ACHIEVE_TYPE_FIXED==item.getCalculationType()){
- percentage=item.getAchieve();
- }else{
- percentage= consume * (item.getAchieve()/100);
- }
- break;
- }
- }
- return percentage;
- }
- }
+ if (AchieveRuleItem.ACHIEVE_TYPE_FIXED == item.getCalculationType()) {
+ percentage = item.getAchieve();
+ } else {
+ percentage = consume * (item.getAchieve() / 100);
+ }
+ break;
+ }
+ }
+ return percentage;
+ }
+ }
return 0D;
}
/**
* 顾问人头业绩
+ *
* @param achieveNew
*/
private void saleAchieveNumOfPeople(AchieveNew achieveNew) {
@@ -301,7 +303,6 @@
}
/**
- *
* 合并订单与服务单人头逻辑,即每一个客户对美疗师/顾问来说,每一天同一个客户只算一个人头。
* 如若A给客户X下订单,并给客户X服务,对A来说只算一个人头
*/
@@ -316,7 +317,9 @@
num = 1D / achieveNewList.size();
}
- achieveNewDao.updateAchieveNumOfPeople(achieveNewList, num);
+ if (CollUtil.isNotEmpty(achieveNewList)) {
+ achieveNewDao.updateAchieveNumOfPeople(achieveNewList, num);
+ }
}
}
@@ -331,10 +334,9 @@
if (orderItem != null && CollectionUtils.isNotEmpty(orderItem.getAchieveList())) {
for (AchieveNew achieveNew : orderItem.getAchieveList()) {
- if (achieveNew !=null && achieveNew.getGoodsCash()!=null) {
- buildAchieve(pageOrder, orderItem, achieveNew);
+ if (achieveNew != null && achieveNew.getGoodsCash() != null) {
+ buildAchieve(pageOrder, orderItem, achieveNew);
achieveNewList.add(achieveNew);
-
beautyIds.add(achieveNew.getBeaultId());
}
}
@@ -356,7 +358,7 @@
BusParameterSettingsDao busParameterSettingsDao;
private void buildAchieve(SysOrder pageOrder, SysOrderItem orderItem, AchieveNew achieveNew) {
- BusParameterSettings shopManageJjcpasConsume =null;
+ BusParameterSettings shopManageJjcpasConsume = null;
if (Dictionary.ORDER_STATU_TK.equals(pageOrder.getStatu())) {
achieveNew.setId(null);
achieveNew.setProjPercentage(0 - achieveNew.getProjPercentage());
@@ -364,7 +366,7 @@
}
achieveNew.setVipId(pageOrder.getVipId());
- if(achieveNew.getSaleId()==null){
+ if (achieveNew.getSaleId() == null) {
achieveNew.setSaleId(pageOrder.getStaffId());
}
@@ -374,11 +376,15 @@
} else {
achieveNew.setDatatime(new Date());
}
- if(Dictionary.SHOPPING_GOODS_TYPE_JJCP.equals(orderItem.getShoppingGoods().getGoodType())){
- if(shopManageJjcpasConsume==null){
+ ShoppingGoods shoppingGoods = shoppingGoodsDao.selectById(orderItem.getGoodsId());
+ if (Dictionary.SHOPPING_GOODS_TYPE_JJCP.equals(shoppingGoods.getGoodType())) {
+ if (shopManageJjcpasConsume == null) {
shopManageJjcpasConsume = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.SHOP_MANAGE_JJCPAS_CONSUME, pageOrder.getCompanyId());
}
- if(AppConstance.IS_Y.equals(shopManageJjcpasConsume.getParamValue())){
+// if (AppConstance.IS_Y.equals(shopManageJjcpasConsume.getParamValue())) {
+// achieveNew.setHisConsume(achieveNew.getGoodsCash());
+// }
+ if (BooleanEnum.TRUE.getValue() == shopManageJjcpasConsume.getIntParamValue()) {
achieveNew.setHisConsume(achieveNew.getGoodsCash());
}
@@ -438,7 +444,7 @@
Date endTime = calendar.getTime();
switch (type) {
// 本日
- case 1 :
+ case 1:
break;
// 昨日
case 2:
@@ -487,4 +493,9 @@
public int findDailyBeautyListTotal(AchieveNew achieveNew) {
return achieveNewDao.selectDailyBeautyListTotal(achieveNew);
}
+
+ @Override
+ public void removeByOrderId(Long orderId) {
+ achieveNewDao.deleteByOrderId(orderId);
+ }
}
\ No newline at end of file
--
Gitblit v1.9.1