From bdda3d8531513e32e0a079def5a3e342907a2ef7 Mon Sep 17 00:00:00 2001
From: 935090232@qq.com <ak473600000>
Date: Fri, 18 Jun 2021 22:09:52 +0800
Subject: [PATCH] 修复每日业绩bug和优化赠送业绩计算方式

---
 zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/daily-list-new.html |   10 +++
 zq-erp/src/main/java/com/matrix/system/hive/statistics/AchieveAction.java               |   57 ++++++++++++++----
 zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-list-new.html     |    9 ++
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java      |   19 +----
 zq-erp/src/main/java/com/matrix/system/hive/bean/AchieveNew.java                        |    2 
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java        |   32 ++++++++--
 6 files changed, 92 insertions(+), 37 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/hive/bean/AchieveNew.java b/zq-erp/src/main/java/com/matrix/system/hive/bean/AchieveNew.java
index 0c313f0..ff883d8 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/bean/AchieveNew.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/bean/AchieveNew.java
@@ -228,6 +228,7 @@
 	 * 开始时间
 	 */
 	@DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
 	private Date  beginTime;
 			
 	
@@ -235,6 +236,7 @@
 	 * 结束时间
 	 */
 	@DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
 	private Date  endTime;
 
 
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 da2e7ba..2d5cf4d 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
@@ -172,8 +172,7 @@
         // 下单人是否计算消耗业绩
         boolean flag = projServicesService.skipServiceOrderStep(Dictionary.SALE_MAN_IS_CONSUME_ACHIEVE);
 
-        //赠送项目是否计算消耗业绩
-        boolean zsConsumeAchieve = projServicesService.skipServiceOrderStep(Dictionary.ZS_CONSUME_ACHIEVE);
+
 
 
         for (SysBeauticianState beauticianState : beauticianStateList) {
@@ -188,18 +187,10 @@
             // 是否为赠送业绩
             if (Dictionary.TAOCAN_SOURCE_ZS.equals(projUse.getSource())) {
 
-                if(zsConsumeAchieve){
-                    achieveNew.setFreeConsume(projUse.getPrice()*beauticianState.getCount());
-                    //计算提成
-                    achieveNew.setProjPercentage(
-                            calculationProjPercentage(AchieveRuleItem.ACHIEVE_TYPE_ZS,achieveNew.getFreeConsume(),beauticianState.getProjId()));
-                }else{
-                    continue;
-                }
-
-
-
-
+                achieveNew.setFreeConsume(projUse.getPrice()*beauticianState.getCount());
+                //计算提成
+                achieveNew.setProjPercentage(
+                        calculationProjPercentage(AchieveRuleItem.ACHIEVE_TYPE_ZS,achieveNew.getFreeConsume(),beauticianState.getProjId()));
 
             } else {
                 achieveNew.setHisConsume(projUse.getPrice()*beauticianState.getCount());
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
index 0384cfd..1e80f7f 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
@@ -1238,13 +1238,21 @@
         if (sysOrderItem.getIsFree().equals(Dictionary.FLAG_NO) && sysOrderItem.getZkPrice() > 0) {
             puse.setSource(Dictionary.TAOCAN_SOURCE_GM);
         } else {
-            //赠送产品按原价计算消耗
+
             puse.setSource(Dictionary.TAOCAN_SOURCE_ZS);
-            if (taocanId == null) {
-                puse.setPrice(goodsAssemble.getShoppingGoods().getPrice() );
-            } else {
-                puse.setPrice(goodsAssemble.getPrice());
+            //赠送项目是否计算消耗业绩否则 赠送产品按原价计算消耗
+            boolean zsConsumeAchieve = projServicesService.skipServiceOrderStep(Dictionary.ZS_CONSUME_ACHIEVE);
+            if(zsConsumeAchieve){
+                if (taocanId == null) {
+                    puse.setPrice(goodsAssemble.getShoppingGoods().getPrice() );
+                } else {
+                    puse.setPrice(goodsAssemble.getPrice());
+                }
+            }else{
+                puse.setPrice(0D);
             }
+
+
         }
         puse.setBalance(MoneyUtil.mul(puse.getPrice(), Double.valueOf(puse.getSurplusCount())));
         puse.setFailTime(failTime);
@@ -1311,6 +1319,9 @@
         sysProjUseDao.update(taocanProjUse);
     }
 
+    @Autowired
+    private SysProjServicesService projServicesService;
+
     /**
      * 根据订单创建用户项目使用情况
      *
@@ -1335,8 +1346,15 @@
             puse.setPrice(sysOrderItem.getZkPrice());
         } else {
             puse.setSource(Dictionary.TAOCAN_SOURCE_ZS);
-            //赠送产品按原价计算消耗
-            puse.setPrice(sysOrderItem.getShoppingGoods().getSealPice());
+            //赠送项目是否计算消耗业绩否则 赠送产品按原价计算消耗
+            boolean zsConsumeAchieve = projServicesService.skipServiceOrderStep(Dictionary.ZS_CONSUME_ACHIEVE);
+            if(zsConsumeAchieve){
+                puse.setPrice(sysOrderItem.getShoppingGoods().getSealPice());
+            }else{
+                puse.setPrice(0D);
+            }
+
+
         }
         // 设置失效时间
         Date invalidTime = shoppingGoodsService.calInvalidTime(sysOrderItem.getShoppingGoods(), 1, null);
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/statistics/AchieveAction.java b/zq-erp/src/main/java/com/matrix/system/hive/statistics/AchieveAction.java
index 680990c..3469bb4 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/statistics/AchieveAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/statistics/AchieveAction.java
@@ -9,8 +9,10 @@
 import com.matrix.core.tools.WebUtil;
 import com.matrix.core.tools.excl.ExcelSheetPO;
 import com.matrix.core.tools.excl.ExcelVersion;
+import com.matrix.system.common.bean.CustomerDataDictionary;
 import com.matrix.system.common.bean.SysUsers;
 import com.matrix.system.common.constance.AppConstance;
+import com.matrix.system.common.dao.CustomerDataDictionaryDao;
 import com.matrix.system.common.tools.ResponseHeadUtil;
 import com.matrix.system.hive.action.util.QueryUtil;
 import com.matrix.system.hive.bean.AchieveNew;
@@ -18,8 +20,6 @@
 import com.matrix.system.hive.dto.AchieveNewStatisticsDto;
 import com.matrix.system.hive.plugin.util.CollectionUtils;
 import com.matrix.system.hive.service.AchieveNewService;
-import com.matrix.system.hive.service.SysOrderItemService;
-import com.matrix.system.hive.service.SysOrderService;
 import com.matrix.system.hive.vo.AchieveNewStatisticsVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -50,12 +50,6 @@
     private AchieveNewService achieveNewService;
 
     @Autowired
-    private SysOrderService sysOrderService;
-
-    @Autowired
-    private SysOrderItemService sysOrderItemService;
-
-    @Autowired
     private AchieveNewDao achieveNewDao;
 
 
@@ -82,7 +76,7 @@
      */
     @RequestMapping(value = "/findSumDailyInfoNew")
     public @ResponseBody
-    AjaxResult findSumDailyInfoNew(AchieveNew achieveNew, PaginationVO pageVo) {
+    AjaxResult findSumDailyInfoNew(@RequestBody  AchieveNew achieveNew) {
         SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
         if(!AppConstance.ZONGDIAN.equals(sysUsers.getShopName())){
             achieveNew.setShopId(sysUsers.getShopId());
@@ -164,17 +158,46 @@
         com.matrix.core.tools.excl.ExcelUtil.createWorkbookAtOutStream(ExcelVersion.V2007, res, os, true);
     }
 
+    @Autowired
+    CustomerDataDictionaryDao dataDictionaryDao;
+
     @RequestMapping(value = "/exportDailyInfoNew")
     public void exportDailyInfoNew(ModelMap model, HttpServletRequest request, HttpServletResponse response, AchieveNew achieveNew) throws IOException {
-        //这里是从数据库里查数据并组装成我们想要的数据结构的过程
+        SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+
+        List<CustomerDataDictionary> achieveTyps = dataDictionaryDao.selectByParentCode("YJLX", sysUsers.getCompanyId());
+
         List<ExcelSheetPO> res = new ArrayList<>();
         ExcelSheetPO orderSheet = new ExcelSheetPO();
         String title = "员工业绩报表";
         orderSheet.setSheetName(title);
         orderSheet.setTitle(title);
-        String[] header = {"订单时间", "订单编号", "订单类型", "会员姓名", "产品", "业绩规则",  "产品分类", "订单金额", "现金","划扣", "员工", "业绩类型", "员工", "本金消耗", "赠消", "提成", "人头", "项目个数", "项目时间", "顾问", "门店"};
+        List<String> headerList =new ArrayList();
+        headerList.add("订单时间");
+        headerList.add("订单编号");
+        headerList.add("订单类型");
+        headerList.add("会员姓名");
+        headerList.add("产品");
+        headerList.add("业绩规则");
+        headerList.add("产品分类");
+        headerList.add("订单金额");
+        headerList.add("现金");
+        headerList.add("划扣");
+        headerList.add("员工");
+        achieveTyps.forEach(item->{headerList.add(item.getValue());});
+        headerList.add("本金消耗");
+        headerList.add("赠消");
+        headerList.add("提成");
+        headerList.add("人头");
+        headerList.add("项目个数");
+        headerList.add("项目时间");
+        headerList.add("顾问");
+        headerList.add("门店");
+
+        String[] header =  headerList.toArray(new String[headerList.size()]);
+
+
         orderSheet.setHeaders(header);
-        SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
         if(!AppConstance.ZONGDIAN.equals(sysUsers.getShopName())){
             achieveNew.setShopId(sysUsers.getShopId());
         }
@@ -196,8 +219,14 @@
                 temp.add(item.getGoodsCash());
                 temp.add(item.getCardCash());
                 temp.add(item.getMeiliao());
-                //todo 动态导出列----
-
+                //动态导出列----
+                achieveTyps.forEach(item2->{
+                    if(item2.getValue().equals(item.getAchieveType())){
+                        temp.add(item.getGoodsCash());
+                    }else{
+                        temp.add("");
+                    }
+                 });
                 temp.add(item.getHisConsume());
                 temp.add(item.getFreeConsume());
                 temp.add(item.getProjPercentage());
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/daily-list-new.html b/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/daily-list-new.html
index 32384da..5cd963f 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/daily-list-new.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/daily-list-new.html
@@ -188,7 +188,14 @@
 				let _this = this;
 				let form = _this.form;
 				let page = _this.page;
-				let params = _this.form;
+				let params = {};
+				params.year=form.year;
+				params.month=form.month;
+				params.year=form.year;
+				params.day=form.day;
+				params.vipQueryKey=form.vipQueryKey;
+				params.beaultId=form.beaultId;
+				params.shopId=form.shopId;
 				params.limit = page.size;
 				params.offset = (page.currentPage - 1) * page.size;
 
@@ -196,6 +203,7 @@
 					params.beginTime = form.timeRange?moment(form.timeRange[0]).format("YYYY-MM-DD HH:mm"):'';
 					params.endTime = form.timeRange?moment(form.timeRange[1]).format("YYYY-MM-DD HH:mm"):'';
 				}
+
 				AjaxProxy.requst({
 					app: _this,
 					data: params,
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-list-new.html b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-list-new.html
index 75306ee..066b4cb 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-list-new.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-list-new.html
@@ -191,7 +191,14 @@
 				let _this = this;
 				let form = _this.form;
 				let page = _this.page;
-				let params = _this.form;
+				let params = {};
+				params.year=form.year;
+				params.month=form.month;
+				params.year=form.year;
+				params.day=form.day;
+				params.vipQueryKey=form.vipQueryKey;
+				params.beaultId=form.beaultId;
+				params.shopId=form.shopId;
 				params.limit = page.size;
 				params.offset = (page.currentPage - 1) * page.size;
 

--
Gitblit v1.9.1