From 560228ac3c15cccce0b2a5994d44e4e81b5b3b73 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Tue, 24 May 2022 11:12:22 +0800 Subject: [PATCH] 合并服务单订单改造分支 --- zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java | 95 ++++++++++++++++++++++++++--------------------- 1 files changed, 52 insertions(+), 43 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 f32259e..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来说只算一个人头 */ @@ -333,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()); } } @@ -358,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()); @@ -366,7 +366,7 @@ } achieveNew.setVipId(pageOrder.getVipId()); - if(achieveNew.getSaleId()==null){ + if (achieveNew.getSaleId() == null) { achieveNew.setSaleId(pageOrder.getStaffId()); } @@ -376,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()); } @@ -440,7 +444,7 @@ Date endTime = calendar.getTime(); switch (type) { // 本日 - case 1 : + case 1: break; // 昨日 case 2: @@ -489,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