From 4dab41eef4ffde0c2631fbc7147cd2eee3cd0780 Mon Sep 17 00:00:00 2001 From: jyy <935090232@qq.com> Date: Thu, 04 Mar 2021 18:57:56 +0800 Subject: [PATCH] 优化订单业绩 --- zq-erp/src/main/java/com/matrix/system/hive/statistics/AchieveAction.java | 43 +- zq-erp/src/main/java/com/matrix/system/constance/Dictionary.java | 5 zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml | 123 ++------ zq-erp/src/main/resources/templates/views/admin/hive-erp/order/orderXq-form.html | 157 +++++++--- zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderItem.java | 14 zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java | 10 zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java | 12 zq-erp/src/main/java/com/matrix/system/hive/bean/AchieveNew.java | 96 ++---- zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java | 4 zq-erp/src/main/resources/static/templates/vipInfoImport.xls | 0 zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/orderXq-form.html | 129 ++++++-- zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html | 186 +++++++----- zq-erp/src/main/resources/static/templates/vipProjUse.xls | 0 zq-erp/src/main/java/com/matrix/TestClass.java | 4 zq-erp/src/main/resources/readme-jyy | 12 15 files changed, 428 insertions(+), 367 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/TestClass.java b/zq-erp/src/main/java/com/matrix/TestClass.java index 5ba006f..61d3a91 100644 --- a/zq-erp/src/main/java/com/matrix/TestClass.java +++ b/zq-erp/src/main/java/com/matrix/TestClass.java @@ -1,9 +1,7 @@ package com.matrix; -import java.io.FileWriter; import java.io.IOException; -import java.math.BigDecimal; public class TestClass { public static void main(String[] args) throws IOException { @@ -19,7 +17,7 @@ // printer.printRecord(cells); // } // printer.flush(); -// printer.close(); +// printer.close(); long t2 = System.currentTimeMillis(); System.out.println("CSV: " + (t2 - t1)); } diff --git a/zq-erp/src/main/java/com/matrix/system/constance/Dictionary.java b/zq-erp/src/main/java/com/matrix/system/constance/Dictionary.java index cae214e..d2e2e47 100644 --- a/zq-erp/src/main/java/com/matrix/system/constance/Dictionary.java +++ b/zq-erp/src/main/java/com/matrix/system/constance/Dictionary.java @@ -55,10 +55,7 @@ * 支付方式-现金支付 */ String PAY_TYPE_MOENY = "现金"; - /** - * 支付方式-现金支付 - */ - String PAY_TYPE_MOENY_CARD = "会员卡"; + /** * 支付方式-卡支付 */ 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 a7bc0c8..eb15819 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 @@ -72,7 +72,13 @@ * 客户id */ private Long vipId; - + + + + /** + * 购买业绩 + */ + private Double goodsCash; /** * 赠送消耗 @@ -85,30 +91,7 @@ */ private Double hisConsume; - - /** - * 划扣金额 从卡中划扣钱买东西 - */ - private Double consume; - - - /** - * 卡项,套餐,充值,开会籍卡 - */ - private Double cardCash; - - - /** - * 现金单次,购买项目的业绩 - */ - @Deprecated - private Double projCash; - - - /** - * 现金产品,购买家居产品的钱 - */ - private Double goodsCash; + /** @@ -156,11 +139,12 @@ * 总金额 */ private Double zkTotal; + /** * 公司id */ private Long companyId; - + private String t1; @@ -168,13 +152,11 @@ /** - * 岗位业绩 - */ - private String t3; - - /** * 业绩类型 */ + private String achieveType; + + private String t4; @@ -254,16 +236,22 @@ private Date endTime; - /** - * 分配的业绩金额 - */ - private Double achieveMoney; private String goodsNo; private String goodsName; private String type; + + private String payMethod; + + public String getPayMethod() { + return payMethod; + } + + public void setPayMethod(String payMethod) { + this.payMethod = payMethod; + } public String getType() { return type; @@ -313,13 +301,6 @@ this.companyId = companyId; } - public Double getAchieveMoney() { - return achieveMoney; - } - - public void setAchieveMoney(Double achieveMoney) { - this.achieveMoney = achieveMoney; - } public Date getBeginTime() { return beginTime; @@ -405,24 +386,8 @@ public void setHisConsume(Double hisConsume) { this.hisConsume = hisConsume; } - public Double getConsume() { - return consume; - } - public void setConsume(Double consume) { - this.consume = consume; - } - public Double getCardCash() { - return cardCash; - } - public void setCardCash(Double cardCash) { - this.cardCash = cardCash; - } - public Double getProjCash() { - return projCash; - } - public void setProjCash(Double projCash) { - this.projCash = projCash; - } + + public Double getGoodsCash() { return goodsCash; } @@ -483,12 +448,15 @@ public void setT2(String t2) { this.t2 = t2; } - public String getT3() { - return t3; + + public String getAchieveType() { + return achieveType; } - public void setT3(String t3) { - this.t3 = t3; + + public void setAchieveType(String achieveType) { + this.achieveType = achieveType; } + public String getT4() { return t4; } diff --git a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderItem.java b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderItem.java index c572e30..7456a8e 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderItem.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderItem.java @@ -91,7 +91,8 @@ - //页面参数使用 + + /** * 付款方式 */ @@ -182,14 +183,15 @@ /** * 业绩计算 */ - private List<AchieveNew> achaeveList; + private List<AchieveNew> achieveList; - public List<AchieveNew> getAchaeveList() { - return achaeveList; + + public List<AchieveNew> getAchieveList() { + return achieveList; } - public void setAchaeveList(List<AchieveNew> achaeveList) { - this.achaeveList = achaeveList; + public void setAchieveList(List<AchieveNew> achieveList) { + this.achieveList = achieveList; } public String getPayMethodDetail() { diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java b/zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java index 46ee09f..d5f206e 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java @@ -1,15 +1,15 @@ package com.matrix.system.hive.dao; -import java.util.Date; -import java.util.List; -import java.util.Map; - import com.matrix.core.pojo.PaginationVO; import com.matrix.system.app.vo.OrderDetailAchieveItemVo; import com.matrix.system.app.vo.RankingVo; import com.matrix.system.app.vo.UserAchieveVo; import com.matrix.system.hive.bean.AchieveNew; import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; +import java.util.Map; /** @@ -73,4 +73,6 @@ List<AchieveNew> selectOrderItemAchieveByOrderId(Long orderId); List<RankingVo> selectStaffSaleAchieveRanking(@Param("record") AchieveNew achieveNew); + + int deleteByOrderId(@Param("orderId") Long orderId); } \ No newline at end of file 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 049f1b8..c5101d6 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 @@ -213,10 +213,10 @@ 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); @@ -301,17 +301,17 @@ // 本日 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); 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 20c6415..48d6665 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 @@ -252,8 +252,6 @@ /** * 取消订单 - * 本方法无法退回多次不同卡项收款的订单 - * * @param id * @return */ @@ -1212,7 +1210,7 @@ orderItem.setIsFree(Dictionary.FLAG_NO); orderItem.setPrice(czVo.getBjmoney()); orderItem.setStatus(Dictionary.ORDER_STATU_YFK); - orderItem.setAchaeveList(czVo.getAchaeveList()); + orderItem.setAchieveList(czVo.getAchaeveList()); orderItemDao.insert(orderItem); List<SysOrderItem> items = new ArrayList<>(); items.add(orderItem); 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 7f452ad..79e9739 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 @@ -12,13 +12,14 @@ import com.matrix.system.common.tools.ResponseHeadUtil; import com.matrix.system.hive.action.util.QueryUtil; import com.matrix.system.hive.bean.AchieveNew; -import com.matrix.system.hive.bean.SysOrder; -import com.matrix.system.hive.bean.SysOrderItem; +import com.matrix.system.hive.dao.AchieveNewDao; +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 org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -48,6 +49,9 @@ @Autowired private SysOrderItemService sysOrderItemService; + + @Autowired + private AchieveNewDao achieveNewDao; /** * 门店每日单据明细表 @@ -90,7 +94,7 @@ String title = "每日单据明细"; orderSheet.setSheetName(title); orderSheet.setTitle(title); - String[] header = {"年", "月", "日", "订单类型", "订单编号", "会员级别", "姓名", "项目名称", "总金额", "卡项", "现金单次", "现金产品", "划扣", "本金消耗", "赠消", "提成", "顾问", "美疗师", "人头", "项目个数", "项目时间", "门店"}; + String[] header = {"年", "月", "日", "订单类型", "订单编号", "会员级别", "姓名", "项目名称", "总金额", "现金产品", "划扣", "本金消耗", "赠消", "提成", "顾问", "美疗师", "人头", "项目个数", "项目时间", "门店"}; orderSheet.setHeaders(header); SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); if(!AppConstance.ZONGDIAN.equals(sysUsers.getShopName())){ @@ -112,10 +116,7 @@ temp.add(item.getVipName()); temp.add(item.getProName()); temp.add(item.getZkTotal()); - temp.add(item.getCardCash()); - temp.add(item.getProjCash()); temp.add(item.getGoodsCash()); - temp.add(item.getConsume()); temp.add(item.getHisConsume()); temp.add(item.getFreeConsume()); temp.add(item.getProjPercentage()); @@ -149,27 +150,17 @@ @RequestMapping(value = "/add") @ResponseBody + @Transactional public AjaxResult add(@RequestBody List<AchieveNew> list) { - SysOrder order = sysOrderService.findById(list.get(0).getOrderId()); - List<SysOrderItem> orderItems = sysOrderItemService.findByOrderId(order.getId()); - orderItems.forEach(item -> { - List<AchieveNew> achieveNewList = new ArrayList<>(); - for(AchieveNew achieveNew : list) { - achieveNewService.removeById(achieveNew.getId()); - achieveNew.setId(null); - achieveNew.setConsume(null); - achieveNew.setCardCash(null); - - if (achieveNew.getOrderItemId().equals(item.getId())) { - achieveNewList.add(achieveNew); - } - - } - item.setAchaeveList(achieveNewList); - }); - order.setItems(orderItems); - achieveNewService.addAchaeveByOrder(order); - return AjaxResult.buildSuccessInstance("保存成功"); + if (CollectionUtils.isNotEmpty(list)) { + //删除原业绩 + achieveNewDao.deleteByOrderId(list.get(0).getOrderId()); + //插入新业绩 + achieveNewDao.batchInsert(list); + return AjaxResult.buildSuccessInstance("保存成功"); + } else { + return AjaxResult.buildFailInstance("未找到业绩数据"); + } } } diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml index fc99f96..4e5b1ce 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml @@ -17,9 +17,6 @@ <result property="vipId" column="vip_id" /> <result property="freeConsume" column="free_consume" /> <result property="hisConsume" column="his_consume" /> - <result property="consume" column="consume" /> - <result property="cardCash" column="card_cash" /> - <result property="projCash" column="proj_cash" /> <result property="goodsCash" column="goods_cash" /> <result property="projNum" column="proj_num" /> <result property="numberOfPeople" column="number_of_people" /> @@ -28,10 +25,9 @@ <result property="remark" column="remark" /> <result property="orderType" column="order_type" /> <result property="projPercentage" column="proj_percentage" /> - <result property="achieveMoney" column="achieveMoney" /> <result property="t1" column="t1" /> <result property="t2" column="t2" /> - <result property="t3" column="t3" /> + <result property="achieveType" column="achieveType" /> <result property="t4" column="t4" /> <result property="t5" column="t5" /> <result property="t6" column="t6" /> @@ -53,7 +49,7 @@ <result property="goodsNo" column="goodsNo" /> <result property="goodsName" column="goodsName" /> - <result property="zkPrice" column="zkPrice" /> + <result property="payMethod" column="pay_method" /> </resultMap> @@ -68,16 +64,10 @@ d.level_name, c.vip_name, e.name as pro_name, - a.card_cash, - (IFNULL(a.card_cash,0) +IFNULL(a.proj_cash,0) + IFNULL(a.goods_cash,0) - ) as zk_total, - a.proj_cash, + (IFNULL(a.goods_cash,0)) as zk_total, a.goods_cash, - a.card_cash, - a.consume, a.his_consume, a.free_consume, - a.achieveMoney, f.su_name meiliao, g.su_name guwen, a.proj_percentage, @@ -208,12 +198,8 @@ YEAR (a.datatime) year, MONTH (a.datatime) month, DAY(a.datatime) day, - SUM(a.card_cash) as card_cash , - SUM((IFNULL(a.card_cash,0) +IFNULL(a.proj_cash,0) + IFNULL(a.goods_cash,0) ) )as zk_total, - SUM(a.proj_cash) as proj_cash, + SUM( IFNULL(a.goods_cash,0) )as zk_total, SUM(a.goods_cash) as goods_cash, - SUM(a.card_cash) as card_cash, - SUM(a.consume) as consume, SUM(a.his_consume) as his_consume, SUM(a.free_consume) as free_consume, SUM(a.proj_percentage) as proj_percentage, @@ -289,9 +275,6 @@ <result property="vipId" column="vip_id" /> <result property="freeConsume" column="free_consume" /> <result property="hisConsume" column="his_consume" /> - <result property="consume" column="consume" /> - <result property="cardCash" column="card_cash" /> - <result property="projCash" column="proj_cash" /> <result property="goodsCash" column="goods_cash" /> <result property="projNum" column="proj_num" /> <result property="numberOfPeople" column="number_of_people" /> @@ -300,10 +283,10 @@ <result property="remark" column="remark" /> <result property="orderType" column="order_type" /> <result property="projPercentage" column="proj_percentage" /> - <result property="achieveMoney" column="achieveMoney" /> + <result property="t1" column="t1" /> <result property="t2" column="t2" /> - <result property="t3" column="t3" /> + <result property="achieveType" column="achieveType" /> <result property="t4" column="t4" /> <result property="t5" column="t5" /> <result property="t6" column="t6" /> @@ -326,9 +309,6 @@ vip_id, free_consume, his_consume, - consume, - card_cash, - proj_cash, goods_cash, proj_num, number_of_people, @@ -337,10 +317,10 @@ remark, order_type, proj_percentage, - achieveMoney, + t1, t2, - t3, + achieveType, t4, t5, t6, @@ -363,9 +343,6 @@ #{item.vipId}, #{item.freeConsume}, #{item.hisConsume}, - #{item.consume}, - #{item.cardCash}, - #{item.projCash}, #{item.goodsCash}, #{item.projNum}, #{item.numberOfPeople}, @@ -374,10 +351,10 @@ #{item.remark}, #{item.orderType}, #{item.projPercentage}, - #{item.achieveMoney}, + #{item.t1}, #{item.t2}, - #{item.t3}, + #{item.achieveType}, #{item.t4}, #{item.t5}, #{item.t6}, @@ -441,18 +418,8 @@ test="(record.hisConsume!=null and record.hisConsume!='') or (record.hisConsume!='' and record.hisConsume==0) "> and his_consume = #{record.hisConsume} </if> - <if - test="(record.consume!=null and record.consume!='') or (record.consume!='' and record.consume==0) "> - and consume = #{record.consume} - </if> - <if - test="(record.cardCash!=null and record.cardCash!='') or (record.cardCash!='' and record.cardCash==0) "> - and card_cash = #{record.cardCash} - </if> - <if - test="(record.projCash!=null and record.projCash!='') or (record.projCash!='' and record.projCash==0) "> - and proj_cash = #{record.projCash} - </if> + + <if test="(record.goodsCash!=null and record.goodsCash!='') or (record.goodsCash!='' and record.goodsCash==0) "> and goods_cash = #{record.goodsCash} @@ -494,8 +461,8 @@ and t2 = #{record.t2} </if> <if - test="(record.t3!=null and record.t3!='') or (record.t3!='' and record.t3==0) "> - and t3 = #{record.t3} + test="(record.achieveType!=null and record.achieveType!='') or (record.achieveType!='' and record.achieveType==0) "> + and achieveType = #{record.achieveType} </if> <if test="(record.t4!=null and record.t4!='') or (record.t4!='' and record.t4==0) "> @@ -589,15 +556,9 @@ <if test="_parameter.containsKey('hisConsume')"> his_consume = #{hisConsume}, </if> - <if test="_parameter.containsKey('consume')"> - consume = #{consume}, - </if> - <if test="_parameter.containsKey('cardCash')"> - card_cash = #{cardCash}, - </if> - <if test="_parameter.containsKey('projCash')"> - proj_cash = #{projCash}, - </if> + + + <if test="_parameter.containsKey('goodsCash')"> goods_cash = #{goodsCash}, </if> @@ -622,17 +583,15 @@ <if test="_parameter.containsKey('projPercentage')"> proj_percentage = #{projPercentage}, </if> - <if test="_parameter.containsKey('achieveMoney')"> - achieveMoney = #{achieveMoney}, - </if> + <if test="_parameter.containsKey('t1')"> t1 = #{t1}, </if> <if test="_parameter.containsKey('t2')"> t2 = #{t2}, </if> - <if test="_parameter.containsKey('t3')"> - t3 = #{t3}, + <if test="_parameter.containsKey('achieveType')"> + achieveType = #{achieveType}, </if> <if test="_parameter.containsKey('t4')"> t4 = #{t4}, @@ -711,15 +670,8 @@ <if test="record.hisConsume != null "> his_consume = #{record.hisConsume}, </if> - <if test="record.consume != null "> - consume = #{record.consume}, - </if> - <if test="record.cardCash != null "> - card_cash = #{record.cardCash}, - </if> - <if test="record.projCash != null "> - proj_cash = #{record.projCash}, - </if> + + <if test="record.goodsCash != null "> goods_cash = #{record.goodsCash}, </if> @@ -744,17 +696,15 @@ <if test="record.projPercentage != null "> proj_percentage = #{record.projPercentage}, </if> - <if test="record.achieveMoney != null "> - achieveMoney = #{record.achieveMoney}, - </if> + <if test="record.t1 != null and record.t1 != '' "> t1 = #{record.t1}, </if> <if test="record.t2 != null and record.t2 != '' "> t2 = #{record.t2}, </if> - <if test="record.t3 != null and record.t3 != '' "> - t3 = #{record.t3}, + <if test="record.achieveType != null and record.achieveType != '' "> + achieveType = #{record.achieveType}, </if> <if test="record.t4 != null and record.t4 != '' "> t4 = #{record.t4}, @@ -795,6 +745,11 @@ DELETE FROM achieve_new where 1=1 <include refid="where_sql"></include> + </delete> + + + <delete id="deleteByOrderId"> + DELETE FROM achieve_new where order_id=#{orderId} </delete> @@ -868,7 +823,7 @@ sum(b.hisConsume) his_consume from sys_vip_info a inner join ( - select vip_id,datatime, sum(a.free_consume) freeConsume, sum(a.his_consume) hisConsume, sum(IFNULL(goods_cash, 0) + IFNULL(card_cash, 0)) buyConsume from achieve_new a group by vip_id + select vip_id,datatime, sum(a.free_consume) freeConsume, sum(a.his_consume) hisConsume, sum(IFNULL(goods_cash, 0) )) buyConsume from achieve_new a group by vip_id ) b on a.ID = b.vip_id inner join ( select vip_id, count(1) cnt from ( @@ -915,7 +870,7 @@ select count(1) from sys_vip_info a inner join ( - select vip_id,datatime, sum(a.free_consume) freeConsume, sum(a.his_consume) hisConsume, sum(IFNULL(goods_cash, 0) + IFNULL(card_cash, 0)) buyConsume from achieve_new a group by vip_id + select vip_id,datatime, sum(a.free_consume) freeConsume, sum(a.his_consume) hisConsume, sum(IFNULL(goods_cash, 0) ) buyConsume from achieve_new a group by vip_id ) b on a.ID = b.vip_id inner join ( select vip_id, count(1) cnt from ( @@ -951,8 +906,7 @@ <select id="selectUserAchieveByTime" resultType="com.matrix.system.app.vo.UserAchieveVo"> select sale_id id, - sum(case t3 when '现金业绩' then card_cash else 0 end) orderCash, - sum(case t3 when '划扣业绩' then consume else 0 end) cash, + sum(goods_cash) orderCash, sum(case order_type when '订单' then proj_percentage else 0 end) cardUse, sum(IFNULL(his_consume, 0)) hisConsume, sum(IFNULL(free_consume, 0)) freeConsume, @@ -965,7 +919,7 @@ <select id="selectApiOrderItemAchieve" resultType="com.matrix.system.app.vo.OrderDetailAchieveItemVo"> select b.su_name name, - IFNULL(a.card_cash, 0) + IFNULL(a.proj_cash, 0) + IFNULL(a.goods_cash, 0) achieve + IFNULL(a.goods_cash, 0) achieve from achieve_new a inner join sys_users b on (a.beault_id=b.su_id or a.sale_id = b.su_id) where a.order_item_id=#{itemId} and order_type = '订单' @@ -1000,7 +954,7 @@ select b.su_name name, b.su_id id, - sum(IFNULL(a.free_consume,0) + IFNULL(a.his_consume, 0) + IFNULL(a.consume, 0)) amount, + sum(IFNULL(a.free_consume,0) + IFNULL(a.his_consume, 0) ) amount, c.shop_short_name shopName from achieve_new a inner join sys_users b on a.beault_id=b.su_id @@ -1033,7 +987,8 @@ b.code goodsNo, b.name goodsName, c.su_name meiliao, - d.count*d.zk_price zk_total + d.count*d.zk_price zk_total, + d.pay_method from achieve_new a left join shopping_goods b on a.shopping_goods_id=b.id left join sys_users c on a.beault_id=c.su_id @@ -1046,7 +1001,7 @@ b.su_name name, b.su_id id, b.su_photo photo, - sum(ifnull(card_cash,0)) amount, + sum(ifnull(goods_cash,0)) amount, c.shop_short_name shopName from achieve_new a inner join sys_users b on a.beault_id=b.su_id @@ -1076,7 +1031,7 @@ select b.shop_short_name name, b.SHOP_IMAG photo, - sum(IFNULL(a.consume,0) + IFNULL(a.card_cash,0)) amount + sum(IFNULL(a.goods_cash,0)) amount from achieve_new a left join sys_shop_info b on a.shop_id=b.ID and shop_type!=1 <where> diff --git a/zq-erp/src/main/resources/readme-jyy b/zq-erp/src/main/resources/readme-jyy new file mode 100644 index 0000000..7394481 --- /dev/null +++ b/zq-erp/src/main/resources/readme-jyy @@ -0,0 +1,12 @@ +删除 +cardCash +projCash +只留下 +goodsCash +产品现金业绩和划扣业绩consume + +重构订单,收款,退款等方法不要共用逻辑 +修改t3为业绩类型 +ALTER TABLE `achieve_new` +CHANGE COLUMN `t3` `achieveType` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL AFTER `t2`; + diff --git a/zq-erp/src/main/resources/static/templates/vipInfoImport.xls b/zq-erp/src/main/resources/static/templates/vipInfoImport.xls index 1f0f4c4..78f4a0b 100644 --- a/zq-erp/src/main/resources/static/templates/vipInfoImport.xls +++ b/zq-erp/src/main/resources/static/templates/vipInfoImport.xls Binary files differ diff --git a/zq-erp/src/main/resources/static/templates/vipProjUse.xls b/zq-erp/src/main/resources/static/templates/vipProjUse.xls index 46f3c7d..845fce5 100644 --- a/zq-erp/src/main/resources/static/templates/vipProjUse.xls +++ b/zq-erp/src/main/resources/static/templates/vipProjUse.xls Binary files differ diff --git a/zq-erp/src/main/resources/templates/views/admin/hive-erp/order/orderXq-form.html b/zq-erp/src/main/resources/templates/views/admin/hive-erp/order/orderXq-form.html index 6029100..45d6218 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive-erp/order/orderXq-form.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive-erp/order/orderXq-form.html @@ -133,14 +133,14 @@ </el-col> </el-row> <el-row type="flex" justify="center" style="margin: 20px;"> - <el-button size="medium" type="primary">打印</el-button> + <el-button size="medium" type="primary" @click="printf">打印</el-button> </el-row> </el-aside> <el-main style="background-color: white; margin-right: 15px; margin-left: 15px; padding: 20px 30px;"> <el-tabs v-model="activeName" @tab-click="handleClick"> <el-tab-pane label="订单明细" name="first"> <el-row> - <el-button size="mini" type="primary" @click="openPayMoneyDialog" v-if="isRefund">提交退款</el-button> + <el-button size="mini" type="primary" @click="openPayMoneyDialog" v-if="isRefund">提交退款<span v-if="totalRefund"> ¥ {{totalRefund}}</span></el-button> <el-button size="mini" type="danger" @click="isRefund = false" v-if="isRefund">取消</el-button> <el-button size="mini" type="primary" @click="isRefund = true" v-if="order.statu == '已付款' && !isRefund">退款</el-button> </el-row> @@ -180,6 +180,8 @@ </el-table-column> <el-table-column label="小计" :formatter="calOrderTotalFormatter"> </el-table-column> + <el-table-column label="支付方式" prop="payMethod"> + </el-table-column> </el-table> </el-row> <el-row v-show="isRefund"> @@ -214,12 +216,12 @@ </el-table-column> <el-table-column label="退款单价"> <template slot-scope="scope"> - <el-input v-model="scope.row.refundPrice" v-if="scope.row.count > 0"></el-input> + <el-input @change="calRefund" v-model="scope.row.refundPrice" v-if="scope.row.count > 0"></el-input> </template> </el-table-column> <el-table-column label="退款数量"> <template slot-scope="scope"> - <el-input v-model.number="scope.row.refundCount" v-if="scope.row.count > 0"></el-input> + <el-input @change="calRefund" v-model.number="scope.row.refundCount" v-if="scope.row.count > 0"></el-input> </template> </el-table-column> <el-table-column label="是否退库存" align="center"> @@ -308,15 +310,19 @@ label="收款"> </el-table-column> <el-table-column + prop="payMethod" + label="支付方式"> + </el-table-column> + <el-table-column prop="t3" label="业绩类型"> <template slot-scope="scope"> - <el-select v-model="scope.row.t3" placeholder="请选择业绩类型"> + <el-select v-model="scope.row.achieveType" placeholder="请选择业绩类型"> <el-option v-for="item in achieveTypeList" - :key="item.key" + :key="item.value" :label="item.value" - :value="item.key"> + :value="item.value"> </el-option> </el-select> </template> @@ -325,7 +331,7 @@ prop="achieve" label="业绩"> <template slot-scope="scope"> - <el-input v-model="scope.row.t1"></el-input> + <el-input @input="checkAchieveMoney" v-model="scope.row.goodsCash"></el-input> </template> </el-table-column> <el-table-column @@ -354,9 +360,9 @@ size="mini" @click="delAchieve(scope.$index, scope.row)">删除 </el-button> - <el-tooltip content="分享业绩" placement="top"> - <el-button @click="shareAchieve(scope.$index, scope.row)" icon="el-icon-share" - size="mini" type="primary"></el-button> + <el-tooltip content="分享业绩" placement="top" v-if="!scope.row.isShare"> + <el-button @click="shareAchieve(scope.$index, scope.row)" icon="el-icon-share" + size="mini" type="primary"></el-button> </el-tooltip> </template> </el-table-column> @@ -379,6 +385,10 @@ prop="flowContent" label="交易内容" width="300"> + </el-table-column> + <el-table-column + prop="createTime" + label="交易时间"> </el-table-column> <el-table-column prop="flowType" @@ -449,9 +459,9 @@ </el-col> </el-row> -<!-- <el-row style="text-align: center; margin: 20px 0 10px 0">--> -<!-- <el-checkbox v-model="printPaper">打印小票</el-checkbox>--> -<!-- </el-row>--> + <!-- <el-row style="text-align: center; margin: 20px 0 10px 0">--> + <!-- <el-checkbox v-model="printPaper">打印小票</el-checkbox>--> + <!-- </el-row>--> <el-row style="text-align: center; margin: 10px 0 0 0"> <el-button type="primary" @click="confirmSubmit">确认收款</el-button> @@ -478,21 +488,14 @@ activeName : "first", circleUrl : "https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png", userList : [], - achieveTypeList : [ - { - "key" : "现金业绩", - "value" : "现金业绩" - },{ - "key" : "划扣业绩", - "value" : "划扣业绩" - }, - ], + achieveTypeList : [], orderItems : [], achieveItems : [], flowItems : [], payMethodItems : [], isRefund : false, isReturnAchieve : false, + totalRefund : "", payMethods: [{ value: '现金支付', img: '/images/pay/cash.png', @@ -541,10 +544,28 @@ created : function() { let _this = this; this.orderParam = /*[[${orderParam}]]*/ - this.queryOrderDetailData(this.orderParam); - + this.queryOrderDetailData(this.orderParam); + // 业绩类型 + AjaxProxy.requst({ + app: _this, + url: basePath + '/admin/customerDictionary/getListByParentCode/YJLX', + callback: function (data) { + _this.achieveTypeList = data.rows; + } + }); }, methods : { + calRefund() { + let _this = this; + var total = 0; + _this.orderItems.forEach(item => { + if (item.refundPrice && item.refundCount) { + total += parseFloat(item.refundPrice * item.refundCount); + } + }) + + _this.totalRefund = total; + }, queryOrderDetailData(param) { let _this = this; AjaxProxy.requst({ @@ -682,7 +703,7 @@ } if(_this.order.zkTotal - _this.order.refund - _this.order.arrears < total) { - this.$message.warning("退款金额不能超过收取金额"); + this.$message.warning("退款金额不能超过收款金额"); return false; } _this.data.flows = flows; @@ -839,34 +860,76 @@ }, saveAchieve() { let _this = this; - AjaxProxy.requst({ - app: _this, - data: _this.achieveItems, - contentType: 'application/json', - url: basePath + '/admin/achieve/add', - callback: function (data) { - _this.$message.success(data.info); - } - }); - }, - shareAchieve(index, row) { - var row2 = JSON.parse(JSON.stringify(row)); - row2.id = null; - row2.isShare = true; - this.achieveItems.push(row2); - }, - delAchieve(index, row) { - let _this = this; - if (row.id) { + if(_this.checkAchieveMoney()){ AjaxProxy.requst({ app: _this, - url: basePath + '/admin/achieve/del?id=' + row.id, + data: _this.achieveItems, + contentType: 'application/json', + url: basePath + '/admin/achieve/add', callback: function (data) { + _this.$message.success(data.info); } }); } + }, + + shareAchieve(index, row) { + var row2 = JSON.parse(JSON.stringify(row)); + row2.id = null; + row2.isShare = true; + this.achieveItems.splice(index+1,0,row2); + this.calculationAchieve(); + }, + //业绩均分订单金额 + calculationAchieve(){ + console.log("计算业绩"); + let jsqMap={}; + this.achieveItems.forEach(achieve=>{ + key=achieve.achieveType+achieve.orderItemId; + if(!jsqMap[key]){ + jsqMap[key]=1; + }else{ + jsqMap[key]++; + } + }); + this.achieveItems.forEach(achieve=>{ + key=achieve.achieveType+achieve.orderItemId; + achieve.goodsCash=(achieve.zkTotal/jsqMap[key]).toFixed(2); + }); + }, + //校验业绩是否大于订单收款金额 + checkAchieveMoney(){ + console.log("校验业绩是否大于订单收款金额"); + let jsqMap={}; + let isOk=true; + this.achieveItems.forEach(achieve=>{ + if(!isNaN(achieve.goodsCash) ){ + key=achieve.achieveType+achieve.orderItemId; + if(!jsqMap[key]){ + jsqMap[key]=parseFloat(achieve.goodsCash); + }else{ + jsqMap[key]=jsqMap[key]+parseFloat(achieve.goodsCash); + } + if(jsqMap[key]>achieve.zkTotal) { + this.$message.error("【"+achieve.goodsName + "】业绩分配金额大于支付金额"); + isOk = false; + return; + } + }else{ + this.$message.error("【"+achieve.goodsName + "】业绩分配金额请填写数字"); + isOk=false; + return; + } + }); + console.log("isOk",isOk); + return isOk; + }, + //删除业绩 + delAchieve(index, row) { + let _this = this; _this.achieveItems.splice(index, 1); + this.calculationAchieve(); }, checkAchieveIsDel(items) { var achieveIds = []; @@ -886,7 +949,7 @@ var id = this.order.id; layer.open({ type: 2, - title: "打印服务单", + title: "打印订单", area: ['250px', '550px'], maxmin: true, content: [basePath + '/admin/redirect/hive/beautySalon/print-order?id=' + id] diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html index ad982ce..794b871 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html @@ -288,6 +288,22 @@ </template> </el-table-column> <el-table-column + label="支付方式" + width="130"> + <template slot-scope="scope"> + <el-select v-model="scope.row.payMethod" + placeholder="请选择支付方式"> + <el-option + v-for="item in itemSimplePayMethods" + :key="item.value" + :label="item.label" + :value="item.value" + :disabled="item.disabled"> + </el-option> + </el-select> + </template> + </el-table-column> + <el-table-column label="小计"> <template slot-scope="scope"> {{scope.row.zkPrice * scope.row.count }} @@ -377,7 +393,7 @@ </el-col> </el-row> - + <!-- 业绩设置 --> <el-drawer title="业绩设置" :visible.sync="drawer" @@ -414,24 +430,10 @@ prop="orderItem.payMoney" label="收款"> </el-table-column> - - <el-table-column - label="岗位业绩" width="150"> - <template slot-scope="scope"> - <el-select v-model="scope.row.t3" placeholder="请选择岗位业绩"> - <el-option - v-for="item in achievePostList" - :key="item.value" - :label="item.value" - :value="item.value"> - </el-option> - </el-select> - </template> - </el-table-column> <el-table-column label="业绩类型" width="150"> <template slot-scope="scope"> - <el-select v-model="scope.row.t4" placeholder="请选择业绩类型"> + <el-select v-model="scope.row.achieveType" @change="calculationAchieve" placeholder="请选择业绩类型"> <el-option v-for="item in achieveTypeList" :key="item.value" @@ -442,12 +444,12 @@ </template> </el-table-column> <el-table-column - label="业绩" width="100"> + label="业绩" > <template slot-scope="scope"> - <el-input v-model="scope.row.achieveMoney"></el-input> + <el-input @input="checkAchieveMoney" v-model="scope.row.goodsCash"></el-input> </template> </el-table-column> - <el-table-column + <el-table-column width="100" label="提成"> <template slot-scope="scope"> <el-input v-model="scope.row.commission"></el-input> @@ -474,7 +476,7 @@ size="mini" @click="delAchieve(scope.$index, scope.row)">删除 </el-button> - <el-tooltip content="分享业绩" placement="top"> + <el-tooltip content="分享业绩" placement="top" v-if="!scope.row.isShare"> <el-button @click="shareAchieve(scope.$index, scope.row)" icon="el-icon-share" size="mini" type="primary"></el-button> </el-tooltip> @@ -487,6 +489,7 @@ </el-row> </el-drawer> + <!-- 收款 --> <el-dialog title="收款" :visible.sync="dialogSettleVisible"> <el-row type="flex" align="middle" style="padding: 0 0 10px 0;"> <el-col :span="5" style="text-align: center;">应收</el-col> @@ -587,6 +590,13 @@ vipList: [], currentVipInfo: {}, vipLoading: false, + itemSimplePayMethods:[{ + value: '现金', + label:'现金', + },{ + value: '划扣', + label:'划扣', + }], payMethods: [{ value: '现金支付', img: '/images/pay/cash.png', @@ -679,14 +689,6 @@ } }); - //岗位业绩 - AjaxProxy.requst({ - app: _this, - url: basePath + '/admin/customerDictionary/getListByParentCode/GWYJ', - callback: function (data) { - _this.achievePostList = data.rows; - } - }); // 业绩类型 AjaxProxy.requst({ @@ -742,10 +744,9 @@ orderItem: item, staff: _this.staffUser, saleId: _this.staffUser.suId, - achieveMoney: item.payMoney, + goodsCash: item.payMoney, commission : 0, - t3 : _this.achievePostList[0].value, - t4 : _this.achieveTypeList[0].value, + achieveType : _this.achieveTypeList[0].value, isShare: false, }); }); @@ -870,9 +871,8 @@ orderItem: item, staff: this.staffUser, saleId: this.staffUser.suId, - achieveMoney: item.payMoney, - t3 : _this.achievePostList[0].value, - t4 : _this.achieveTypeList[0].value, + goodsCash: item.payMoney, + achieveType : _this.achieveTypeList[0].value, commission: 0, isShare: false, }); @@ -882,9 +882,8 @@ orderItem: item, staff: this.loginUser, saleId: this.loginUser.suId, - achieveMoney: item.payMoney, - t3 : _this.achievePostList[0].value, - t4 : _this.achieveTypeList[0].value, + goodsCash: item.payMoney, + achieveType : _this.achieveTypeList[0].value, commission: 0, isShare: false, }); @@ -931,11 +930,15 @@ } _this.order.payMoney += parseFloat(item.payMoney); + //重新计算业绩金额 _this.achieveList.forEach(achieve=>{ - if(achieve.orderItem==item){ - achieve.achieveMoney=item.payMoney; + if(achieve.orderItem.uuid==item.uuid){ + achieve.orderItem.payMoney=item.payMoney; } }) + _this.calculationAchieve(); + + }); _this.order.payMoney = _this.order.payMoney.toFixed(2); //计算欠款 @@ -977,14 +980,17 @@ let _this = this; if(submitType == 1) { + //校验支付方式 if (_this.payMoneys.length > 0) { let flows = [] var total = 0; + let isPayMethodOk=true; _this.payMoneys.forEach(item => { let flow = {}; flow.payMethod = item.type; if (!item.money) { - this.$message.warning("请输入" + item.type + "的付款金额"); + _this.$message.warning("请输入" + item.type + "的付款金额"); + isPayMethodOk=false; return false; } flow.amount = parseFloat(item.money); @@ -995,6 +1001,10 @@ total += parseFloat(item.money); flows.push(flow) }) + if(!isPayMethodOk){ + return ; + } + if (total != _this.order.payMoney) { this.$message.warning("输入付款总金额与应付金额不符"); return false; @@ -1010,27 +1020,18 @@ _this.achieveList.forEach(achieve => { for (let i = 0; i < _this.order.items.length; i++) { let item = _this.order.items[i]; - if (!item.achaeveList){ - item.achaeveList = []; + if (!item.achieveList){ + item.achieveList = []; } if (item.uuid == achieve.orderItem.uuid) { let achieveNew = { uuid:item.uuid, beaultId: achieve.saleId, projPercentage: achieve.commission, + achieveType: achieve.achieveType, + goodsCash: achieve.goodsCash, }; - - var flag = true; - for(var j = 0; j < item.achaeveList.length; j++) { - if(item.achaeveList[j].uuid == achieveNew.uuid && item.achaeveList[j].beaultId == achieveNew.beaultId) { - flag = false; - break; - } - } - - if (flag) { - item.achaeveList.push(achieveNew); - } + item.achieveList.push(achieveNew); break; } } @@ -1038,7 +1039,7 @@ console.log(_this.order); //校验业绩金额 - if (_this.checkAchieve()) { + if (_this.checkAchieveMoney()) { let url = basePath + "/admin/order/payOrder"; if (submitType == 2) { url = basePath + "/admin/order/saveOrder"; @@ -1094,29 +1095,7 @@ } }, - /** - * 校验订单业绩设置是否合理 - */ - checkAchieve() { - /* - //TODO 前端展示不检测,因为考虑到储值卡支付问题 - let _this = this; - for (let i = 0; i < _this.order.items.length; i++) { - if (_this.achieveList.length > 0) { - let item = _this.order.items[i]; - let sum = 0; - item.achieveList.forEach(achieve => { - console.log(sum, achieve); - sum += parseFloat(achieve.t1); - }); - if (sum > item.payMoney) { - this.$message.warning("业绩金额不能大于支付金额【" + item.shoppingGoods.name + "】"); - return false; - } - } - }*/ - return true; - }, + /** * 检查订单是否能够提交 @@ -1260,11 +1239,60 @@ shareAchieve(index, row) { row2 = JSON.parse(JSON.stringify(row)); row2.isShare = true; - this.achieveList.push(row2); + this.achieveList.splice(index+1,0,row2); + //this.achieveList=; + this.calculationAchieve(); }, + + //业绩均分订单金额 + calculationAchieve(){ + console.log("计算业绩"); + let jsqMap={}; + this.achieveList.forEach(achieve=>{ + key=achieve.achieveType+achieve.orderItem.uuid; + if(!jsqMap[key]){ + jsqMap[key]=1; + }else{ + jsqMap[key]++; + } + }); + this.achieveList.forEach(achieve=>{ + key=achieve.achieveType+achieve.orderItem.uuid; + achieve.goodsCash=(achieve.orderItem.payMoney/jsqMap[key]).toFixed(2); + }); + }, + //校验业绩是否大于订单收款金额 + checkAchieveMoney(){ + console.log("校验业绩是否大于订单收款金额"); + let jsqMap={}; + let isOk=true; + this.achieveList.forEach(achieve=>{ + if(!isNaN(achieve.goodsCash) ){ + key=achieve.achieveType+achieve.orderItem.uuid; + if(!jsqMap[key]){ + jsqMap[key]=parseFloat(achieve.goodsCash); + }else{ + jsqMap[key]=jsqMap[key]+parseFloat(achieve.goodsCash); + } + if(jsqMap[key]>achieve.orderItem.payMoney) { + this.$message.error("【"+achieve.orderItem.shoppingGoods.name + "】业绩分配金额大于支付金额"); + isOk = false; + return; + } + }else{ + this.$message.error("【"+achieve.orderItem.shoppingGoods.name + "】业绩分配金额请填写数字"); + isOk=false; + return; + } + }); + console.log("isOk",isOk); + return isOk; + }, + //删除业绩 delAchieve(index, row) { this.achieveList.splice(index, 1); + this.calculationAchieve(); }, print() { let _this = this; diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/orderXq-form.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/orderXq-form.html index bd63766..45d6218 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/orderXq-form.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/orderXq-form.html @@ -180,6 +180,8 @@ </el-table-column> <el-table-column label="小计" :formatter="calOrderTotalFormatter"> </el-table-column> + <el-table-column label="支付方式" prop="payMethod"> + </el-table-column> </el-table> </el-row> <el-row v-show="isRefund"> @@ -308,15 +310,19 @@ label="收款"> </el-table-column> <el-table-column + prop="payMethod" + label="支付方式"> + </el-table-column> + <el-table-column prop="t3" label="业绩类型"> <template slot-scope="scope"> - <el-select v-model="scope.row.t3" placeholder="请选择业绩类型"> + <el-select v-model="scope.row.achieveType" placeholder="请选择业绩类型"> <el-option v-for="item in achieveTypeList" - :key="item.key" + :key="item.value" :label="item.value" - :value="item.key"> + :value="item.value"> </el-option> </el-select> </template> @@ -325,7 +331,7 @@ prop="achieve" label="业绩"> <template slot-scope="scope"> - <el-input v-model="scope.row.t1"></el-input> + <el-input @input="checkAchieveMoney" v-model="scope.row.goodsCash"></el-input> </template> </el-table-column> <el-table-column @@ -354,9 +360,9 @@ size="mini" @click="delAchieve(scope.$index, scope.row)">删除 </el-button> - <el-tooltip content="分享业绩" placement="top"> - <el-button @click="shareAchieve(scope.$index, scope.row)" icon="el-icon-share" - size="mini" type="primary"></el-button> + <el-tooltip content="分享业绩" placement="top" v-if="!scope.row.isShare"> + <el-button @click="shareAchieve(scope.$index, scope.row)" icon="el-icon-share" + size="mini" type="primary"></el-button> </el-tooltip> </template> </el-table-column> @@ -453,9 +459,9 @@ </el-col> </el-row> -<!-- <el-row style="text-align: center; margin: 20px 0 10px 0">--> -<!-- <el-checkbox v-model="printPaper">打印小票</el-checkbox>--> -<!-- </el-row>--> + <!-- <el-row style="text-align: center; margin: 20px 0 10px 0">--> + <!-- <el-checkbox v-model="printPaper">打印小票</el-checkbox>--> + <!-- </el-row>--> <el-row style="text-align: center; margin: 10px 0 0 0"> <el-button type="primary" @click="confirmSubmit">确认收款</el-button> @@ -482,15 +488,7 @@ activeName : "first", circleUrl : "https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png", userList : [], - achieveTypeList : [ - { - "key" : "现金业绩", - "value" : "现金业绩" - },{ - "key" : "划扣业绩", - "value" : "划扣业绩" - }, - ], + achieveTypeList : [], orderItems : [], achieveItems : [], flowItems : [], @@ -546,8 +544,15 @@ created : function() { let _this = this; this.orderParam = /*[[${orderParam}]]*/ - this.queryOrderDetailData(this.orderParam); - + this.queryOrderDetailData(this.orderParam); + // 业绩类型 + AjaxProxy.requst({ + app: _this, + url: basePath + '/admin/customerDictionary/getListByParentCode/YJLX', + callback: function (data) { + _this.achieveTypeList = data.rows; + } + }); }, methods : { calRefund() { @@ -855,34 +860,76 @@ }, saveAchieve() { let _this = this; - AjaxProxy.requst({ - app: _this, - data: _this.achieveItems, - contentType: 'application/json', - url: basePath + '/admin/achieve/add', - callback: function (data) { - _this.$message.success(data.info); - } - }); - }, - shareAchieve(index, row) { - var row2 = JSON.parse(JSON.stringify(row)); - row2.id = null; - row2.isShare = true; - this.achieveItems.push(row2); - }, - delAchieve(index, row) { - let _this = this; - if (row.id) { + if(_this.checkAchieveMoney()){ AjaxProxy.requst({ app: _this, - url: basePath + '/admin/achieve/del?id=' + row.id, + data: _this.achieveItems, + contentType: 'application/json', + url: basePath + '/admin/achieve/add', callback: function (data) { + _this.$message.success(data.info); } }); } + }, + + shareAchieve(index, row) { + var row2 = JSON.parse(JSON.stringify(row)); + row2.id = null; + row2.isShare = true; + this.achieveItems.splice(index+1,0,row2); + this.calculationAchieve(); + }, + //业绩均分订单金额 + calculationAchieve(){ + console.log("计算业绩"); + let jsqMap={}; + this.achieveItems.forEach(achieve=>{ + key=achieve.achieveType+achieve.orderItemId; + if(!jsqMap[key]){ + jsqMap[key]=1; + }else{ + jsqMap[key]++; + } + }); + this.achieveItems.forEach(achieve=>{ + key=achieve.achieveType+achieve.orderItemId; + achieve.goodsCash=(achieve.zkTotal/jsqMap[key]).toFixed(2); + }); + }, + //校验业绩是否大于订单收款金额 + checkAchieveMoney(){ + console.log("校验业绩是否大于订单收款金额"); + let jsqMap={}; + let isOk=true; + this.achieveItems.forEach(achieve=>{ + if(!isNaN(achieve.goodsCash) ){ + key=achieve.achieveType+achieve.orderItemId; + if(!jsqMap[key]){ + jsqMap[key]=parseFloat(achieve.goodsCash); + }else{ + jsqMap[key]=jsqMap[key]+parseFloat(achieve.goodsCash); + } + if(jsqMap[key]>achieve.zkTotal) { + this.$message.error("【"+achieve.goodsName + "】业绩分配金额大于支付金额"); + isOk = false; + return; + } + }else{ + this.$message.error("【"+achieve.goodsName + "】业绩分配金额请填写数字"); + isOk=false; + return; + } + }); + console.log("isOk",isOk); + return isOk; + }, + //删除业绩 + delAchieve(index, row) { + let _this = this; _this.achieveItems.splice(index, 1); + this.calculationAchieve(); }, checkAchieveIsDel(items) { var achieveIds = []; -- Gitblit v1.9.1