From a9f950c0d11a687a7a940443b8c765f6d87ae4f1 Mon Sep 17 00:00:00 2001
From: jyy <935090232@qq.com>
Date: Tue, 20 Apr 2021 00:26:22 +0800
Subject: [PATCH] 合并新的修改
---
zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java | 190 +++++++++++++++++++++++++++++++++--------------
1 files changed, 133 insertions(+), 57 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 df7c66e..f0c6d88 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
@@ -1,9 +1,18 @@
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;
+import com.matrix.core.tools.DateUtil;
import com.matrix.core.tools.ModelUtils;
import com.matrix.core.tools.StringUtils;
+import com.matrix.core.tools.WebUtil;
+import com.matrix.system.app.vo.UserAchieveVo;
+import com.matrix.system.common.bean.BusParameterSettings;
+import com.matrix.system.common.bean.SysUsers;
+import com.matrix.system.common.constance.AppConstance;
+import com.matrix.system.common.dao.BusParameterSettingsDao;
import com.matrix.system.common.dao.SysUsersDao;
import com.matrix.system.constance.Dictionary;
import com.matrix.system.hive.bean.*;
@@ -13,13 +22,12 @@
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;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
/**
* This field was generated by Zking.software.Codegen.
@@ -40,6 +48,9 @@
@Autowired
private SysProjUseDao sysProjUseDao;
+
+ @Autowired
+ private SysProjServicesService projServicesService;
@Override
public int add(AchieveNew achieveNew) {
@@ -152,12 +163,15 @@
@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();
Long achieveId = projServices.getCreateStaffId();
+
+ // 下单人是否计算消耗业绩
+ boolean flag = projServicesService.skipServiceOrderStep(Dictionary.SALE_MAN_IS_CONSUME_ACHIEVE);
for (SysBeauticianState beauticianState : beauticianStateList) {
// 是否第一次计算改美疗师
@@ -170,33 +184,50 @@
achieveNew.setVipId(projServices.getVipId());
// 是否为赠送业绩
if (Dictionary.TAOCAN_SOURCE_ZS.equals(projUse.getSource())) {
- achieveNew.setFreeConsume(projUse.getPrice());
+ achieveNew.setFreeConsume(projUse.getPrice()*beauticianState.getCount());
} else {
- achieveNew.setHisConsume(projUse.getPrice());
+ achieveNew.setHisConsume(projUse.getPrice()*beauticianState.getCount());
}
achieveNew.setT2(projUse.getSource());
- if (projServices.getCreateTime() != null) {
- achieveNew.setDatatime(projServices.getCreateTime());
- } else {
- achieveNew.setDatatime(new Date());
- }
+ achieveNew.setDatatime(new Date());
achieveNew.setOrderType(Dictionary.ORDER_TYPE_SERVICE);
achieveNew.setServiceOrderId(projServices.getId());
achieveNew.setOrderItemId(beauticianState.getId());
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()));
}
if (isFirst && beauticianState.getEndTime() != null && beauticianState.getBeginTime() != null) {
- long timeSpace = beauticianState.getEndTime().getTime() - beauticianState.getBeginTime().getTime();
- if (timeSpace > 0) {
- achieveNew.setProjTime((int) (timeSpace / 1000 / 60));
- } else {
- achieveNew.setProjTime(1);
- }
+// long timeSpace = beauticianState.getEndTime().getTime() - beauticianState.getBeginTime().getTime();
+// if (timeSpace > 0) {
+// achieveNew.setProjTime((int) (timeSpace / 1000 / 60));
+// } else {
+// achieveNew.setProjTime(1);
+// }
+ achieveNew.setProjTime(beauticianState.getExcTime());
isFirst = false;
}
achieveNewList.add(achieveNew);
@@ -208,29 +239,35 @@
}
+ /**
+ * 顾问人头业绩
+ * @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
public void addAchaeveByOrder(SysOrder pageOrder) {
List<AchieveNew> achieveNewList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(pageOrder.getItems())) {
for (SysOrderItem orderItem : pageOrder.getItems()) {
- if (orderItem != null && CollectionUtils.isNotEmpty(orderItem.getAchaeveList())) {
+ if (orderItem != null && CollectionUtils.isNotEmpty(orderItem.getAchieveList())) {
- for (AchieveNew achieveNew : orderItem.getAchaeveList()) {
- if (achieveNew !=null && achieveNew.getT1()!=null) {
+ for (AchieveNew achieveNew : orderItem.getAchieveList()) {
+ if (achieveNew !=null && achieveNew.getGoodsCash()!=null) {
buildAchieve(pageOrder, orderItem, achieveNew);
// 新增美疗师业绩
achieveNewList.add(achieveNew);
}
}
- } else {
- // 如果该订单明细没有设置美疗师则单独设置顾问业绩
- AchieveNew achieveNew = new AchieveNew();
- // 顾问业绩等于收款金额
- achieveNew.setT1(orderItem.getPayMoney() + "");
- buildAchieve(pageOrder, orderItem, achieveNew);
- // 新增顾问业绩
- achieveNewList.add(achieveNew);
}
}
}
@@ -241,48 +278,46 @@
@Autowired
ShoppingGoodsDao shoppingGoodsDao;
+ @Autowired
+ BusParameterSettingsDao busParameterSettingsDao;
private void buildAchieve(SysOrder pageOrder, SysOrderItem orderItem, AchieveNew achieveNew) {
+ BusParameterSettings shopManageJjcpasConsume =null;
+ if (Dictionary.ORDER_STATU_TK.equals(pageOrder.getStatu())) {
+ achieveNew.setId(null);
+ achieveNew.setProjPercentage(0 - achieveNew.getProjPercentage());
+ achieveNew.setGoodsCash(0 - achieveNew.getGoodsCash());
+ }
+
achieveNew.setVipId(pageOrder.getVipId());
achieveNew.setSaleId(pageOrder.getStaffId());
- if (pageOrder.getOrderTime() != null) {
- achieveNew.setDatatime(pageOrder.getOrderTime());
- } else if (pageOrder.getOrderTime() != null) {
- achieveNew.setDatatime(pageOrder.getOrderTime());
+ if (pageOrder.getPayTime() != null) {
+ achieveNew.setDatatime(pageOrder.getPayTime());
} else {
achieveNew.setDatatime(new Date());
}
+ if(Dictionary.SHOPPING_GOODS_TYPE_JJCP.equals(orderItem.getShoppingGoods().getGoodType())){
+ if(shopManageJjcpasConsume==null){
+ shopManageJjcpasConsume = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.SHOP_MANAGE_JJCPAS_CONSUME, pageOrder.getCompanyId());
+ }
+ if(AppConstance.IS_Y.equals(shopManageJjcpasConsume.getParamValue())){
+ achieveNew.setHisConsume(achieveNew.getGoodsCash());
+ }
+
+ }
+
+ // 设置顾问人头业绩
+ saleAchieveNumOfPeople(achieveNew);
+
achieveNew.setOrderType(Dictionary.ORDER_TYPE_SEAL);
achieveNew.setOrderId(pageOrder.getId());
achieveNew.setOrderItemId(orderItem.getId());
achieveNew.setShopId(pageOrder.getShopId());
+ achieveNew.setCompanyId(pageOrder.getCompanyId());
achieveNew.setShoppingGoodsId(orderItem.getGoodsId());
// 是否赠送
achieveNew.setT2(orderItem.getIsFree());
- // 根据商品类型设置业绩类型
-
- String goodType = shoppingGoodsDao.selectById(orderItem.getGoodsId()).getGoodType();
- if (orderItem.getPayMethod().equals(Dictionary.PAY_TYPE_MOENY)
- && Dictionary.SHOPPING_GOODS_TYPE_XM.equals(goodType)) {
- // 现金支付设置现金单次
- achieveNew.setProjCash(Double.parseDouble(achieveNew.getT1()));
-
- } else if (orderItem.getPayMethod().equals(Dictionary.PAY_TYPE_MOENY)
- && Dictionary.SHOPPING_GOODS_TYPE_JJCP.equals(goodType)) {
- // 设置现金产品
- achieveNew.setGoodsCash(Double.parseDouble(achieveNew.getT1()));
- } else if (orderItem.getPayMethod().equals(Dictionary.PAY_TYPE_MOENY)
- && (Dictionary.SHOPPING_GOODS_TYPE_TC.equals(goodType)
- || Dictionary.SHOPPING_GOODS_TYPE_CZK.equals(goodType)
- || Dictionary.SHOPPING_GOODS_TYPE_ZHK.equals(goodType)
- || Dictionary.SHOPPING_GOODS_TYPE_TCK.equals(goodType))) {
- // 设置卡项
- achieveNew.setCardCash(Double.parseDouble(achieveNew.getT1()));
- } else if (!orderItem.getPayMethod().equals(Dictionary.PAY_TYPE_CARD)) {
- // 设置划扣金额
- achieveNew.setConsume(Double.parseDouble(achieveNew.getT1()));
- }
}
@Override
@@ -317,4 +352,45 @@
public int findVipConsumeStatisticsTotal(AchieveNew achieveNew) {
return achieveNewDao.selectVipConsumeStatisticsTotal(achieveNew);
}
+
+ @Override
+ public UserAchieveVo findUserAchieveByTime(int type) {
+ SysUsers users = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+ Calendar calendar = Calendar.getInstance();
+ Date startTime = calendar.getTime();
+ Date endTime = calendar.getTime();
+ switch (type) {
+ // 本日
+ case 1 :
+ break;
+ // 昨日
+ case 2:
+ startTime = DateUtil.previousNDate(startTime, 1);
+ endTime = startTime;
+ break;
+ // 本月
+ case 3:
+ calendar.set(Calendar.DAY_OF_MONTH, 1);
+ startTime = calendar.getTime();
+ break;
+ // 上月
+ case 4:
+ calendar.add(Calendar.MONTH, -1);
+ calendar.set(Calendar.DAY_OF_MONTH, 1);
+ startTime = calendar.getTime();
+ calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
+ endTime = calendar.getTime();
+ break;
+ default:
+ break;
+
+ }
+
+ return achieveNewDao.selectUserAchieveByTime(startTime, endTime, users.getSuId());
+ }
+
+ @Override
+ public List<AchieveNew> findOrderItemAchieve(Long orderId) {
+ return achieveNewDao.selectOrderItemAchieveByOrderId(orderId);
+ }
}
\ No newline at end of file
--
Gitblit v1.9.1