From 0a67d6a24417507a27e03d53da82bbd802257148 Mon Sep 17 00:00:00 2001
From: jyy <935090232@qq.com>
Date: Tue, 19 Jan 2021 02:20:39 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/api' into api
---
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/cz-form.html | 565 +++++++++++++++++---------
zq-erp/src/main/java/com/matrix/system/hive/action/MoneyCardUseController.java | 10
zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-sale-list.html | 16
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip.html | 1
zq-erp/src/main/java/com/matrix/system/app/action/ApiRankingAction.java | 15
zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml | 27 +
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/cz-form-bak.html | 239 +++++++++++
zq-erp/src/main/java/com/matrix/system/app/vo/VipAchieveDataShowVo.java | 6
zq-erp/src/main/java/com/matrix/system/hive/statistics/DailySaleVo.java | 10
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/pbxq-form.html | 17
zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java | 2
zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/daily-sale-list.html | 157 +++++++
zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java | 1
zq-erp/src/main/java/com/matrix/system/hive/pojo/CzXkVo.java | 14
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java | 13
zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml | 17
zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml | 2
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/bj-form.html | 7
zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderTask.java | 31 +
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/orderXq-form.html | 7
zq-erp/src/main/java/com/matrix/system/hive/statistics/SysBusinessDataAction.java | 28 +
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html | 24 +
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/service_all_list.html | 2
23 files changed, 949 insertions(+), 262 deletions(-)
diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java
index 5c5735f..dfd5149 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java
@@ -47,6 +47,7 @@
* @author wzy
* @date 2020-12-21
**/
+@CrossOrigin(origins = "*")
@Api(value = "CommonAction", tags = "手机端公共请求类(含登陆)")
@RestController
@RequestMapping(value = "/api/common")
diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiRankingAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiRankingAction.java
index 5a4b4fe..f3d4d1f 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiRankingAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiRankingAction.java
@@ -59,18 +59,15 @@
@PostMapping(value = "/findShopAchieveRanking")
public AjaxResult findShopAchieveRanking(@RequestBody RankingDto rankingDto) {
AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("");
+ AchieveNew achieveNew = new AchieveNew();
+ QueryUtil.setQueryLimitCom(achieveNew);
+ achieveNew.setT1(rankingDto.getType());
+ achieveNew.setDatatime(new Date());
+
if (RankingDto.SALE.equals(rankingDto.getDataType())) {
- AchieveNew achieveNew = new AchieveNew();
- QueryUtil.setQueryLimitCom(achieveNew);
- achieveNew.setType(rankingDto.getType());
- achieveNew.setDatatime(new Date());
- List<RankingVo> list = achieveNewDao.selectShopConsumeAchieveRanking(achieveNew);
+ List<RankingVo> list = achieveNewDao.selectShopSaleAchieveRanking(achieveNew);
ajaxResult.setRows(list);
} else {
- AchieveNew achieveNew = new AchieveNew();
- QueryUtil.setQueryLimitCom(achieveNew);
- achieveNew.setDatatime(new Date());
- achieveNew.setT1(rankingDto.getType());
List<RankingVo> rankingVos = achieveNewDao.selectShopConsumeAchieveRanking(achieveNew);
ajaxResult.setRows(rankingVos);
}
diff --git a/zq-erp/src/main/java/com/matrix/system/app/vo/VipAchieveDataShowVo.java b/zq-erp/src/main/java/com/matrix/system/app/vo/VipAchieveDataShowVo.java
index d392636..a6a05e7 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/vo/VipAchieveDataShowVo.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/vo/VipAchieveDataShowVo.java
@@ -21,10 +21,10 @@
@ApiModelProperty(value = "现金业绩")
private BigDecimal cashAmount;
- @ApiModelProperty(value = "售卡业绩")
+ @ApiModelProperty(hidden = true)
private BigDecimal cardAmount;
- @ApiModelProperty(value = "产品业绩")
+ @ApiModelProperty(value = "订单提成")
private BigDecimal goodsAmount;
@ApiModelProperty(value = "划扣业绩")
@@ -36,7 +36,7 @@
@ApiModelProperty(value = "赠送消耗")
private BigDecimal freeConsume;
- @ApiModelProperty(value = "提成")
+ @ApiModelProperty(value = "服务提成")
private BigDecimal commission;
@ApiModelProperty(value = "人头数")
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/action/MoneyCardUseController.java b/zq-erp/src/main/java/com/matrix/system/hive/action/MoneyCardUseController.java
index 75a6e73..6db943c 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/action/MoneyCardUseController.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/action/MoneyCardUseController.java
@@ -61,14 +61,12 @@
* @author jyy
*/
@RequestMapping(value = "/editFormCz")
- public String editFormCz() {
- SysVipInfo info =
- (SysVipInfo) WebUtil.getSession().getAttribute(SystemConstance.CURRENT_CUSTOMER);
- MoneyCardUse cardUseInfo = cardUseService.findByVipId(info.getId());
+ public String editFormCz(Long id) {
+ MoneyCardUse cardUseInfo = cardUseService.findByVipId(id);
if (cardUseInfo == null) {
cardUseInfo = new MoneyCardUse();
- cardUseInfo.setVipId(info.getId());
+ cardUseInfo.setVipId(id);
cardUseInfo.setCardName("储值卡");
cardUseInfo.setIsVipCar(Dictionary.FLAG_YES_Y);
cardUseInfo.setRealMoney(0D);
@@ -90,7 +88,7 @@
*/
@RequestMapping(value = "/cz")
public @ResponseBody
- AjaxResult cz(CzXkVo czVo) {
+ AjaxResult cz(@RequestBody CzXkVo czVo) {
SysOrder order= orderService.updateAddCardMoney(czVo);
AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, "充值成功");
result.putInMap("orderId",order.getId());
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 90d9a2e..46ee09f 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
@@ -66,6 +66,8 @@
List<RankingVo> selectShopConsumeAchieveRanking(@Param("record") AchieveNew achieveNew);
+ List<RankingVo> selectShopSaleAchieveRanking(@Param("record") AchieveNew achieveNew);
+
List<RankingVo> selectBeauticianConsumeAchieveRanking(@Param("record") AchieveNew achieveNew);
List<AchieveNew> selectOrderItemAchieveByOrderId(Long orderId);
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/pojo/CzXkVo.java b/zq-erp/src/main/java/com/matrix/system/hive/pojo/CzXkVo.java
index b071654..66abb3a 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/pojo/CzXkVo.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/pojo/CzXkVo.java
@@ -1,6 +1,7 @@
package com.matrix.system.hive.pojo;
import com.matrix.system.hive.bean.AchieveNew;
+import com.matrix.system.hive.bean.SysOrderFlow;
import java.util.List;
@@ -17,8 +18,17 @@
private Long staffId;
private Long vipId;
private List<AchieveNew> achaeveList;
-
-
+
+ private List<SysOrderFlow> flows;
+
+ public List<SysOrderFlow> getFlows() {
+ return flows;
+ }
+
+ public void setFlows(List<SysOrderFlow> flows) {
+ this.flows = flows;
+ }
+
public Long getCardId() {
return cardId;
}
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 8bd6280..9cfcdec 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
@@ -1135,11 +1135,11 @@
public SysOrder updateAddCardMoney(CzXkVo czVo) {
SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
- SysVipInfo vip = (SysVipInfo) WebUtil.getSession().getAttribute(SystemConstance.CURRENT_CUSTOMER);
- czVo.setVipId(vip.getId());
+// SysVipInfo vip = (SysVipInfo) WebUtil.getSession().getAttribute(SystemConstance.CURRENT_CUSTOMER);
+// czVo.setVipId(vip.getId());
//更新会员会员卡金额
- MoneyCardUse cardUser = moneyCardUseDao.selectVipCard(vip.getId());
+ MoneyCardUse cardUser = moneyCardUseDao.selectVipCard(czVo.getVipId());
cardUser.setRealMoney(MoneyUtil.add(cardUser.getRealMoney(), czVo.getBjmoney()));
cardUser.setGiftMoney(MoneyUtil.add(cardUser.getGiftMoney(), czVo.getGiftMoney()));
moneyCardUseDao.update(cardUser);
@@ -1170,6 +1170,7 @@
order.setStaffId(user.getSuId());
order.setIsCross(2 + "");
order.setStatu(Dictionary.ORDER_STATU_YFK);
+ order.setCompanyId(user.getCompanyId());
sysOrderDao.insert(order);
SysOrderItem orderItem = new SysOrderItem();
@@ -1189,6 +1190,9 @@
orderItem.setStatus(Dictionary.ORDER_STATU_YFK);
orderItem.setAchaeveList(czVo.getAchaeveList());
orderItemDao.insert(orderItem);
+ List<SysOrderItem> items = new ArrayList<>();
+ items.add(orderItem);
+ order.setItems(items);
//设置卡项使用流水
@@ -1204,7 +1208,8 @@
moneyCardUseFlow.setBalance(cardUser.getGiftMoney()+cardUser.getRealMoney());
moneyCardUseFlowDao.insert(moneyCardUseFlow);
-
+ order.setFlows(czVo.getFlows());
+ changeOrderStatu(order);
// 添加员工业绩
achieveNewService.addAchaeveByOrder(order);
return order;
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/statistics/DailySaleVo.java b/zq-erp/src/main/java/com/matrix/system/hive/statistics/DailySaleVo.java
index 743bd33..dabb87f 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/statistics/DailySaleVo.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/statistics/DailySaleVo.java
@@ -18,6 +18,8 @@
private String shopName;
+ private BigDecimal shouldPay;
+
private BigDecimal totalPay;
private BigDecimal cashPay;
@@ -100,6 +102,14 @@
private Long shopId;
+ public BigDecimal getShouldPay() {
+ return shouldPay;
+ }
+
+ public void setShouldPay(BigDecimal shouldPay) {
+ this.shouldPay = shouldPay;
+ }
+
public BigDecimal getWechat() {
return wechat;
}
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/statistics/SysBusinessDataAction.java b/zq-erp/src/main/java/com/matrix/system/hive/statistics/SysBusinessDataAction.java
index 0b2fa69..14b05f9 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/statistics/SysBusinessDataAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/statistics/SysBusinessDataAction.java
@@ -60,22 +60,46 @@
@RequestMapping(value = "/findDailySaleData")
@ResponseBody
public AjaxResult findDailySaleData(DailySaleVo dailySaleVo, PaginationVO pageVo) {
-
+ SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
Calendar calendar = Calendar.getInstance();
+ int total = 999;
+
+ Date endDate = new Date();
+ if (dailySaleVo.getEndTime() != null) {
+ if (!dailySaleVo.getEndTime().after(new Date())) {
+ calendar.setTime(dailySaleVo.getEndTime());
+ endDate = DateUtil.nextNDate(dailySaleVo.getEndTime(), 1);
+ }
+ }
+
+ calendar.add(Calendar.DATE, 1);
calendar.add(Calendar.DATE, -pageVo.getOffset());
String endTime = DateUtil.dateToString(calendar.getTime(), DateUtil.DATE_FORMAT_DD);
calendar.add(Calendar.DATE, -pageVo.getLimit());
String startTime = DateUtil.dateToString(calendar.getTime(), DateUtil.DATE_FORMAT_DD);
+
+ if (dailySaleVo.getBeginTime() != null) {
+ Date startDate = DateUtil.stringToDate(startTime, DateUtil.DATE_FORMAT_DD);
+ if(dailySaleVo.getBeginTime().after(startDate)) {
+ startTime = DateUtil.dateFormatStr(dailySaleVo.getBeginTime(), DateUtil.DATE_FORMAT_DD);
+ }
+ long sub = DateUtil.getTimeSpan(dailySaleVo.getBeginTime(), endDate, null);
+ Long l = sub / (1000 * 3600 * 24);
+ total = l.intValue();
+ }
List<Date> xAxis = StatisticsTimeUtil.getTimeSpace(startTime, endTime, "日");
List<StatisticsTimeDaoParam> timeSpaceParam = StatisticsTimeUtil.buidParam(xAxis);
List<StatisticsTimeDaoParam> statisticsTimeDaoParams = timeSpaceParam.subList(0, timeSpaceParam.size() - 2);
+ if (dailySaleVo.getShopId() == null) {
+ dailySaleVo.setShopId(user.getShopId());
+ }
List<DailySaleVo> dailySaleVos = sysBusinessDataDao.selectDailySaleData(statisticsTimeDaoParams, dailySaleVo.getShopId());
List<DailySaleVo> result = new ArrayList<>();
for (int i = dailySaleVos.size() - 1; i >= 0; i--) {
result.add(dailySaleVos.get(i));
}
- return AjaxResult.buildSuccessInstance(result);
+ return AjaxResult.buildSuccessInstance(result, total);
}
}
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderTask.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderTask.java
index 1aeb371..88aab2e 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderTask.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderTask.java
@@ -9,9 +9,7 @@
import com.matrix.system.common.dao.BusParameterSettingsDao;
import com.matrix.system.constance.Dictionary;
import com.matrix.system.hive.bean.*;
-import com.matrix.system.hive.dao.SysOrderDao;
-import com.matrix.system.hive.dao.SysOrderItemDao;
-import com.matrix.system.hive.dao.SysVipInfoDao;
+import com.matrix.system.hive.dao.*;
import com.matrix.system.hive.service.CodeService;
import com.matrix.system.hive.service.ShoppingGoodsService;
import com.matrix.system.hive.service.SysOrderService;
@@ -24,6 +22,7 @@
import com.rabbitmq.client.DeliverCallback;
import com.rabbitmq.client.Delivery;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.io.IOException;
@@ -34,6 +33,7 @@
/**
* 微商城订单同步到erp系统
*/
+@Component
public class OrderTask implements DeliverCallback {
@@ -73,6 +73,12 @@
@Autowired
BusParameterSettingsDao parameterSettingsDao;
+ @Autowired
+ private SysOrderFlowDao sysOrderFlowDao;
+
+ @Autowired
+ private ShoppingGoodsDao shoppingGoodsDao;
+
@Transactional(rollbackFor = Exception.class)
public void createOrder(ShopOrder orderDto) {
@@ -86,7 +92,7 @@
}
//获取订单归属门店
- order.setCompanyId(bizUser.getCompanyId());
+ order.setCompanyId(vipInfo.getCompanyId());
order.setShopId(Long.parseLong(orderDto.getStoreId()+""));
//同步的订单订单编号保持一致
order.setOrderNo(orderDto.getOrderNo());
@@ -100,6 +106,7 @@
order.setCashPay(orderDto.getOrderMoney().doubleValue());
order.setTotal(orderDto.getOrderMoney().doubleValue());
order.setZkTotal(orderDto.getOrderMoney().doubleValue());
+ order.setPayTime(new Date());
order.setArrears(0);
int i = sysOrderDao.insert(order);
// 创建订单明细,并计算总价与折扣总价
@@ -188,13 +195,21 @@
orderService.setShopSelCount(sourceOrder);
SysOrderFlow flow = new SysOrderFlow();
+ flow.setFlowNo(codeService.getFlowCode() + "-" + i);
+ Long goodsId = sourceOrder.getItems().get(0).getGoodsId();
+ ShoppingGoods goods = shoppingGoodsDao.selectById(goodsId);
+ flow.setFlowContent(goods.getName() + "等" + sourceOrder.getItems().size() + "件产品");
+
+ flow.setOrderId(sourceOrder.getId());
+ flow.setVipId(sourceOrder.getVipId());
+ flow.setFlowType(SysOrderFlow.FLOW_TYPE_BUY);
+
flow.setAmount(orderDto.getOrderMoney());
flow.setPayMethod("微信");
- List<SysOrderFlow> flows = new ArrayList<>();
- flows.add(flow);
- sourceOrder.setFlows(flows);
- orderService.updateAfterMoney(sourceOrder);
+ flow.setShopId(sourceOrder.getShopId());
+ flow.setCompanyId(sourceOrder.getCompanyId());
+ sysOrderFlowDao.insert(flow);
}
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 d6f90e1..48bb959 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml
@@ -964,7 +964,7 @@
select
b.shop_short_name name,
b.SHOP_IMAG photo,
- sum(IFNULL(a.free_consume,0) + IFNULL(a.consume,0) + IFNULL(a.his_consume,0)) amount
+ sum(IFNULL(a.free_consume,0) + IFNULL(a.his_consume,0)) amount
from achieve_new a
left join sys_shop_info b on a.shop_id=b.ID
<where>
@@ -1060,4 +1060,29 @@
group by b.su_id
order by amount desc, b.su_id
</select>
+
+ <select id="selectShopSaleAchieveRanking" resultType="com.matrix.system.app.vo.RankingVo">
+ select
+ b.shop_short_name name,
+ b.SHOP_IMAG photo,
+ sum(IFNULL(a.consume,0) + IFNULL(a.card_cash,0)) amount
+ from achieve_new a
+ left join sys_shop_info b on a.shop_id=b.ID
+ <where>
+ <if test="record.companyId != null">
+ and a.company_id=#{record.companyId}
+ </if>
+ <if test='record.t1 == "1" and record.datatime != null'>
+ and date_format(datatime, '%Y-%m-%d') = date_format(#{record.datatime}, '%Y-%m-%d')
+ </if>
+ <if test='record.t1 == "2" and record.datatime != null'>
+ and date_format(datatime, '%Y-%m') = date_format(#{record.datatime}, '%Y-%m')
+ </if>
+ <if test='record.t1 == "3" and record.datatime != null'>
+ and date_format(datatime, '%Y') = date_format(#{record.datatime}, '%Y')
+ </if>
+ </where>
+ group by a.shop_id
+ order by amount desc, a.shop_id
+ </select>
</mapper>
\ No newline at end of file
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml
index 3be128f..a857e67 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml
@@ -804,11 +804,18 @@
<foreach collection="list" index="index" item="item" separator="union all" >
select
#{item.beginTime} dataTime,
+ (select shop_short_name from sys_shop_info where id=#{shopId}) shopName,
+ (select sum(total) shouldPay from sys_order
+ where STATU in ('已付款', '欠款') and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
+ <if test="shopId != null">
+ and shop_id=#{shopId}
+ </if>
+ ) shouldPay,
(select IFNULL(sum(amount),0) from sys_order_flow
- where <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]> and pay_method!='欠款'
- <if test="shopId != null">
- and shop_id=#{shopId}
- </if>
+ where <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]> and pay_method!='欠款'
+ <if test="shopId != null">
+ and shop_id=#{shopId}
+ </if>
)totalPay,
(select IFNULL(sum(amount),0) from sys_order_flow
where pay_method not in ('储值卡', '欠款') and flow_type != '退款' and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
@@ -932,7 +939,7 @@
from sys_order_flow
where <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime} ]]>
<if test="shopId != null">
- and a.shop_id=#{shopId}
+ and shop_id=#{shopId}
</if>
group by paymethod
</sql>
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml
index 6cc5489..16ea29d 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml
@@ -232,7 +232,7 @@
<foreach collection="list" index="index" item="item" separator="union all" >
select
#{item.beginTime} time,
- (select ifnull(sum(card_cash),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) orderAmount,
+ (select ifnull(sum(ifnull(card_cash,0) + ifnull(consume,0)),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) orderAmount,
(select ifnull(sum(case t3 when '现金业绩' then card_cash else 0 end),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) cashAmount,
(select ifnull(sum(case t3 when '划扣业绩' then consume else 0 end),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) cardAmount,
(select ifnull(sum(case t3 when '划扣业绩' then consume else 0 end),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) cardUseAmount,
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/daily-sale-list.html b/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/daily-sale-list.html
new file mode 100644
index 0000000..8acd0ec
--- /dev/null
+++ b/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/daily-sale-list.html
@@ -0,0 +1,157 @@
+
+<!DOCTYPE HTML>
+<html xmlns:th="http://www.thymeleaf.org" xmlns:matrix="http://www.w3.org/1999/xhtml">
+<head>
+<meta charset="utf-8">
+<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
+<meta name="renderer" content="webkit|ie-comp|ie-stand">
+<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+<meta name="viewport"
+ content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
+<meta http-equiv="Cache-Control" content="no-siteapp" />
+<LINK rel="Bookmark" href="../images/favicon.ico">
+<!-- 本框架基本脚本和样式 -->
+<script type="text/javascript"
+ th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script>
+<script type="text/javascript" th:src="@{/js/systools/MBase.js}"></script>
+
+</head>
+<body class="gray-bg">
+
+
+ <div class="ibox-content">
+ <!-- 搜索框部分start -->
+ <form class="form-inline" id="serchform">
+ <div class="form-group mr-20">
+ <label>日期范围</label>
+ <input name="beginTime" type="text" class="form-control datetimepicker" id="beginTime">-
+ <input name="endTime" type="text" class="form-control datetimepicker" id="endTime">
+ </div>
+
+ <div class="form-group mr-20">
+ <label>门店</label>
+ <select class="form-control autoFull" data-filed="shopName" name="shopId" id="shopId"
+ th:data-url="@{/admin/shopInfo/findShops}">
+ <option value=''>--请选择部所属门店--</option>
+ </select>
+ </div>
+
+ <div class="row mb-10">
+ <div class="col-sm-8">
+ <button onclick="myGrid.serchData()" type="button" class="btn btn-info btn-sm"><i class="fa fa-search" ></i> 搜索</button>
+ <button type="reset" class="btn btn-default btn-sm"><i class="fa fa-refresh " ></i> 重置</button>
+<!-- <button matrix:btn="ygyjbb-exportExcel" onclick="exportExcel()" type="button" class="btn btn-default btn-sm"><i class="fa fa-download" ></i> 导出</button>-->
+ </div>
+ </div>
+ </form>
+
+
+ <table id="mgrid">
+ <thead>
+ <tr>
+ <th data-formatter="MGrid.indexfn" data-align="center"
+ data-width="30px">序号</th>
+ <th data-field="dataTime">日期</th>
+ <th data-field="shopName">门店名称</th>
+ <th data-field="shouldPay" data-formatter="shouldPayFormat">应收金额</th>
+ <th data-field="totalPay">实收金额</th>
+ <th data-field="shouldPay" data-formatter="zkAmountFormat">折扣金额</th>
+ <th data-field="perCustomCnt">客单数</th>
+ <th data-field="customGoodsCnt">客品数</th>
+ <th data-field="cost">成本</th>
+ <th data-field="grossProfit">毛利</th>
+ <th data-field="grossProfitRate">毛利率</th>
+ <th data-field="wechat">微信</th>
+ <th data-field="alipay">支付宝</th>
+ <th data-field="cash">现金</th>
+ <th data-field="bankCard">银行卡</th>
+ <th data-field="tuan">团购</th>
+ <th data-field="cardBj">本金收款</th>
+ <th data-field="cardFree">赠金收款</th>
+ <th data-field="arrears">欠款</th>
+ </tr>
+ </thead>
+ </table>
+ </div>
+
+ <script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script>
+ <script type="text/javascript" th:src="@{/js/function/public.js}"></script>
+ <script type="text/javascript">
+ var myGrid;
+ var initParam = {
+ format : "yyyy-mm-dd", //默认显示年与日,如果想显示十分秒:"yyyy-mm-dd hh:ii:ss"
+ minView: "month", //"month",只显示年月日的选择,不会再跳转去选择时分秒;如果想要选择时分秒的:"hour"
+ }
+ MTools.ininDatetimepicker(initParam);
+ //限制结束时间不小于开始时间
+ MTools.limitStartEndTime({});
+
+ $(function() {
+ MTools.autoFullSelect();
+ $(".select2").select2();
+ myGrid = MGrid.initGrid({
+ url : basePath+"/admin/sysBusinessData/findDailySaleData",
+ showExport : true,
+ showFooter : false,
+ height:'auto',
+ width:'auto',
+ exportDataType : "basic", //basic', 'all', 'selected'.
+ exportTypes : [ 'excel', 'xlsx' ], //导出类型
+ exportOptions : {
+ ignoreColumn : [ 0 ],
+ fileName : "客户消费统计" + MTools.getTime(), //文件名称设置
+ worksheetName : 'Sheet1', //表格工作区名称
+ tableName : '客户消费统计',
+ excelstyles : [ 'background-color', 'color', 'font-size',
+ 'font-weight' ],
+ }
+ });
+
+ $('[data-toggle="tooltip"]').tooltip()
+
+ });
+
+ function shouldPayFormat(value, row, index) {
+ return row.shouldPay + row.refund;
+ }
+
+ function zkAmountFormat(value, row, index) {
+ return row.shouldPay + row.refund - row.totalPay;
+ }
+
+ function footCountTitle(data) {
+ return "<b>合计</b>";
+ };
+ function countColumn(data) {
+ if (data) {
+ var resultsumQuantity = parseFloat(data).toFixed(2);//保留有效数字
+ return resultsumQuantity;
+ } else {
+ return "-";
+ }
+ };
+
+ function buildVipNameJump(value, row, index) {
+ return '<a onClick="vipDetail(\'' + row.t9 +'\')" class="text-primary " >'+value+'</a>';
+ }
+
+ function vipDetail(value) {
+ layer.full(layer.open({
+ type : 2,
+ title : "订单详情",
+ maxmin : true,
+ area : MUI.SIZE_M,
+ content : [basePath+'/admin/redirect/hive/beautySalon/vip?vipPhone=' + value ]
+ }));
+ }
+
+ function exportExcel(){
+
+ var param=MForm.toUrlParam("#serchform");
+
+ window.location.href=basePath+"/admin/achieve/exportDailyInfoNew?"+param;
+ }
+
+ </script>
+</body>
+</html>
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/bj-form.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/bj-form.html
index 42a34a0..b39313f 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/bj-form.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/bj-form.html
@@ -303,6 +303,13 @@
}
} else {
Vue.set(item,'isActive',true);
+ var hasAmount = 0;
+ for(var i = 0; i < payMoneys.length; i++) {
+ hasAmount += parseFloat(payMoneys[i].money);
+ }
+ if (_this.order.arrears - hasAmount > 0) {
+ Vue.set(item, 'money', _this.order.arrears - hasAmount);
+ }
_this.payMoneys.push(item);
}
});
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/cz-form-bak.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/cz-form-bak.html
new file mode 100644
index 0000000..5c0925d
--- /dev/null
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/cz-form-bak.html
@@ -0,0 +1,239 @@
+<!DOCTYPE HTML>
+<html xmlns:th="http://www.thymeleaf.org" xmlns:matrix="http://www.w3.org/1999/xhtml">
+<head>
+<meta charset="utf-8">
+<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
+<meta name="renderer" content="webkit|ie-comp|ie-stand">
+<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+<meta name="viewport"
+ content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
+<meta http-equiv="Cache-Control" content="no-siteapp" />
+<LINK rel="Bookmark" href="../images/favicon.ico">
+<!-- 本框架基本脚本和样式 -->
+<script type="text/javascript"
+ th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script>
+<script type="text/javascript"
+ th:src="@{/js/systools/MBase.js}"></script>
+
+
+<title></title>
+</head>
+<div class="ibox-content">
+
+ <form th:if="${obj ne null }" class="form-horizontal" id="dataform"
+ onsubmit="javascripr:return false;">
+ <input autocomplete="off" type="hidden" name="cardId" th:value="${obj.id }">
+ <div class="form-group">
+ <label class="col-sm-2 control-label">余额</label>
+ <div class="col-sm-4">
+ <input autocomplete="off" type="text" class="form-control" th:value="${obj.realMoney}"
+ readonly="readonly">
+ <div class="Validform_checktip"></div>
+ </div>
+ <label class="col-sm-2 control-label">充值时间</label>
+ <div class="col-sm-4">
+
+ <input autocomplete="off" name="dateTime" type="text" datatype="*"
+ class="form-control datetimepicker" nullmsg="充值时间不能为空"
+ style="display: inline;"
+ th:value="${#dates.format(new java.util.Date().getTime(), 'yyyy-MM-dd')}">
+ <div class="Validform_checktip"></div>
+ </div>
+
+
+ </div>
+ <div class="form-group">
+
+ <label class="col-sm-2 control-label">充值金额</label>
+ <div class="col-sm-4">
+ <input autocomplete="off" type="text" class="form-control" name="bjmoney" value="0"
+ onchange="changePayMoney('p0',this)"
+ datatype="*" nullmsg="充值金额不能为空">
+ <div class="Validform_checktip"></div>
+ </div>
+
+ <label class="col-sm-2 control-label">赠送金额</label>
+ <div class="col-sm-4">
+ <input autocomplete="off" type="text" class="form-control" value="0" dataType="n1-8"
+ name="giftMoney" />
+ <div class="Validform_checktip"></div>
+ </div>
+ </div>
+ <div class="form-group">
+
+ <label class="col-sm-2 control-label">赠送积分</label>
+ <div class="col-sm-4">
+ <input autocomplete="off" type="text" class="form-control" value="0" dataType="n1-8"
+ name="jf" />
+ <div class="Validform_checktip"></div>
+ </div>
+
+ <label class="col-sm-2 control-label">下单顾问</label>
+ <div class="col-sm-4">
+ <select class="autoFull select2 " style="width: 100%"
+ th:data-url="@{/admin/getShopStaffByRoleName?roleName=健康顾问}"
+ data-value="suId" data-filed="suName"
+ th:data-def="${session.userInfo.suId }" name="staffId">
+ </select>
+ </div>
+
+ </div>
+ <div class="row ">
+ <div class="col-sm-10 pd-20 col-sm-offset-1">
+ <div class="panel-body">
+ <table class="table table-condensed ">
+ <thead>
+ <tr>
+ <th>序号</th>
+ <th>商品名称</th>
+ <th>分配金额</th>
+ <th>美疗师业绩</th>
+ <th>操作</th>
+ </tr>
+ </thead>
+ <tbody id="tbody2">
+ <tr id="p0">
+ <td>1</td>
+ <td>会籍卡充值</td>
+ <td>0</td>
+ <td>
+ <table class="table table-condensed ">
+ <tr>
+ <td><select class="autoFull select2 input-sm" style="width: 80px;"
+ th:data-url="@{/admin/getShopStaffByRoleName?roleName=美疗师}"
+ data-value="suId" data-filed="suName"
+ th:data-def="${session.userInfo.suId }"
+ name="achaeveList[0].beaultId">
+ </select></td>
+ <td><input autocomplete="off" type="text" class="form-control input-sm" value="0"
+ style="width: 80px" name="achaeveList[0].t1"></td>
+ <td><button class="btn btn-danger btn-sm"
+ onclick="deleteBeaute(this)">删除</button></td>
+ </tr>
+ </table>
+ </td>
+ <td><a class="btn btn-default btn-sm"
+ onclick="addBeaute('p0','0')">添加</a></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </div>
+
+
+ <div class="form-group ">
+ <div class="col-sm-12 text-center">
+ <a href="javascript:;" onclick="myForm.submit()"
+ class="btn btn-success radius">保存</a>
+ <button onclick="MTools.closeForm()" class="btn btn-danger radius"
+ type="button">取消</button>
+ </div>
+ </div>
+ </form>
+ </c:if>
+ <div th:if="${obj eq null }" class="text-center text-info">
+ <h2>该会员没有可用的会员卡!</h2>
+ </div>
+
+</div>
+<script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script><script type="text/javascript">
+ $('.select2 ').select2();
+ MTools.autoFullSelect();
+ MTools.ininDatetimepicker({});
+ var myForm = MForm.initForm({
+ invokeUrl : basePath+"/admin/moneyCardUse/cz",
+ isAutoClose : false,
+ beforeSubmit : function() {
+
+ //校验业绩
+ var ifAchieveOk = true;
+ var achieveSum = 0;
+ $("#tbody2").children("tr").each(
+ function() {
+ var tr = $(this);
+ var pay = parseFloat(tr.find("td").eq(2).html());
+
+ tr.find("td").eq(3).find("table").find("tr").each(
+ function() {
+ var achieve = parseFloat($(this).find("td")
+ .eq(1).find("input").val());
+ achieveSum += achieve;
+ });
+ if (achieveSum > pay) {
+ ifAchieveOk = false;
+ }
+ });
+ if(isNaN(achieveSum)){
+ layer.msg("业绩金额格式错误", {
+ icon : 2
+ })
+ return false;
+ }
+ if (!ifAchieveOk) {
+ layer.msg("业绩金额不能大于支付金额", {
+ icon : 2
+ })
+ return false;
+ }
+
+ },
+ afterSubmit : function(loj) {
+
+ layer.open({
+ type: 2,
+ title: "打印订单",
+ area: ['250px', '550px'],
+ maxmin: true,
+ content: [basePath + '/admin/redirect/hive/beautySalon/print-order?id=' + loj.getResult().mapInfo.orderId],
+ cancel: function (index, layer) {
+ if (parent.app) {
+ parent.app.vipInfoFn();
+ } else {
+ parent.selectByKey();
+ }
+ MTools.closeForm();
+ }
+ });
+
+ },
+ });
+
+
+
+ //添加一个美疗师
+ function addBeaute(trId, itemIndex) {
+ if (!itemIndex) {
+ itemIndex = 0;
+ }
+ var id = MTools.randomStr();
+ console.log(1);
+ var table = $("#" + trId).find("td").eq(3).find("table")
+
+ var achieveIndex = $("#" + trId).find("td").eq(3).find("table").find(
+ "tr").length;
+ var html = '<tr> <td><select class="autoFull select2 input-sm" id="'+id+'" name="achaeveList['+achieveIndex+'].beaultId" '
+ +'data-url="'+basePath+'/admin/getShopStaffByRoleName?roleName=美疗师" data-value="suId" data-filed="suName" data-def=""'
+ +'name="beatuyId"> </select></td> <td><input autocomplete="off" type="text" class="form-control input-sm" value="0" style="width: 80px" name="achaeveList['+achieveIndex+'].t1" '
+ +'name="items['+achieveIndex+'].zkPrice" ></td> <td><button class="btn btn-danger btn-sm" onclick="deleteBeaute(this)" >删除</button></td> </tr>';
+ $("#" + trId).find("td").eq(3).find("table").append(html);
+ $('#' + id).select2({
+ 'width' : '80px'
+ });
+ MTools.autoFullSelect({
+ selecteder : '#' + id
+ });
+ };
+ //删除一个美疗师
+ function deleteBeaute(node) {
+ $(node).closest("tr").remove();
+ }
+
+ //修改收款金额
+ function changePayMoney(trId, node) {
+ console.log(trId, node);
+ $("#" + trId).find("td").eq(2).html($(node).val());
+ };
+</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/cz-form.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/cz-form.html
index 5c0925d..76320e7 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/cz-form.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/cz-form.html
@@ -10,230 +10,385 @@
<meta http-equiv="Cache-Control" content="no-siteapp" />
<LINK rel="Bookmark" href="../images/favicon.ico">
<!-- 本框架基本脚本和样式 -->
-<script type="text/javascript"
- th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script>
-<script type="text/javascript"
- th:src="@{/js/systools/MBase.js}"></script>
-
-
+<script type="text/javascript" th:src="@{/js/systools/MBaseVue.js}"></script>
+<link rel="stylesheet" th:href="@{/plugin/element-ui/index.css}">
+<link th:href="@{/css/styleOne/style.min.css}" rel="stylesheet" type="text/css"/>
<title></title>
+ <style>
+ .paymethod ul {
+ padding: 0;
+ margin: 0;
+ height: 50px;
+ }
+ .paymethod ul li {
+ padding: 10px;
+ margin: 5px;
+ list-style:none;
+ float: left;
+ display: block;
+ cursor: pointer;
+ position: relative;
+ border: white 1px solid;
+ }
+ .paymethod ul li:hover {
+ border: #409EFF 1px solid;
+ }
+ .paymethod .active {
+ border: #409EFF 1px solid;
+ }
+ .paymethod .active::after {
+ content: '';
+ display: block;
+ height: 0px;
+ width: 0px;
+ position: absolute;
+ bottom: 0;
+ right: 0;
+ color:#fff;
+ /**对号大小*/
+ font-size: 10px;
+ line-height: 8px;
+ border: 3px solid;
+ border-color: transparent #4884ff #4884ff transparent;
+ }
+
+ .el-dialog__body {
+ padding-top: 10px !important;
+ }
+ </style>
</head>
-<div class="ibox-content">
+<div class="panel-body" id="app">
+ <el-dialog title="充值" :visible.sync="dialogSettleVisible" :show-close="false" :close-on-click-modal="false" :close-on-press-escape="false">
+ <el-row type="flex" align="middle" style="padding: 0 0 10px 0;">
+ <el-col :span="5" style="text-align: center;">充值金额</el-col>
+ <el-col :span="10" style="text-align: center; line-height: 50px;">
+ <el-input v-model="rechargeMoney" placeholder="0.1元起充"></el-input>
+ </el-col>
+ </el-row>
- <form th:if="${obj ne null }" class="form-horizontal" id="dataform"
- onsubmit="javascripr:return false;">
- <input autocomplete="off" type="hidden" name="cardId" th:value="${obj.id }">
- <div class="form-group">
- <label class="col-sm-2 control-label">余额</label>
- <div class="col-sm-4">
- <input autocomplete="off" type="text" class="form-control" th:value="${obj.realMoney}"
- readonly="readonly">
- <div class="Validform_checktip"></div>
- </div>
- <label class="col-sm-2 control-label">充值时间</label>
- <div class="col-sm-4">
+ <el-row type="flex" align="middle" style="padding: 10px 0;">
+ <el-col :span="5" style="text-align: center;">收款方式</el-col>
+ <el-col class="paymethod" :span="15">
+ <el-row>
+ <ul>
+ <span v-for="(item, index) in payMethods">
+ <li :class="{active : item.isActive}" @click="payMethodSelect(item, index)"><div style=" height:30px; line-height: 30px; display: flex; align-items: center"><img style="width: 25px; height: 25px; align-items: center;" :src="item.img"><span style="margin-left: 5px;">{{item.value}}</span></div></li>
+ </span>
+ </ul>
+ </el-row>
+ </el-col>
+ </el-row>
- <input autocomplete="off" name="dateTime" type="text" datatype="*"
- class="form-control datetimepicker" nullmsg="充值时间不能为空"
- style="display: inline;"
- th:value="${#dates.format(new java.util.Date().getTime(), 'yyyy-MM-dd')}">
- <div class="Validform_checktip"></div>
- </div>
+ <el-row type="flex" align="middle" style="padding: 10px 0 50px 0;">
+ <el-col :span="5" style="text-align: center;">支付金额</el-col>
+ <el-col :span="15">
+ <el-row style="line-height: 50px;" v-for="(item, index) in payMoneys">
+ <el-col :span="6" style="text-align: right; padding-right: 10px; font-size: 12px;">{{item.value}}</el-col>
+ <el-col :span="8"><el-input v-model="item.money"></el-input></el-col>
+ </el-row>
+ </el-col>
+ </el-row>
+ <el-row type="flex" align="middle" style="padding: 10px 0 50px 0;">
+ <el-col :span="5" style="text-align: center;">业绩</el-col>
+ <el-col :span="16">
+ <el-table class="mt-20"
+ :border="true"
+ :data="achieveList"
+ style="width: 100%">
+ <el-table-column
+ type="index"
+ width="50">
+ </el-table-column>
+ <el-table-column
+ label="业绩" width="100">
+ <template slot-scope="scope">
+ <el-input v-model="scope.row.achieveMoney"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="提成">
+ <template slot-scope="scope">
+ <el-input v-model="scope.row.commission"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="员工" width="130">
+ <template slot-scope="scope">
+ <el-select v-model="scope.row.saleId" placeholder="请选择员工">
+ <el-option
+ v-for="item in userList"
+ :key="item.suId"
+ :label="item.suName"
+ :value="item.suId">
+ </el-option>
+ </el-select>
+ </template>
+ </el-table-column>
+ <el-table-column
+ width="150"
+ label="操作">
+ <template slot-scope="scope">
+ <el-button type="primary" v-if="scope.row.isShare"
+ 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>
+ </template>
+ </el-table-column>
+ </el-table>
+ </el-col>
+ </el-row>
- </div>
- <div class="form-group">
+ <el-row style="text-align: center; margin: 20px 0 10px 0">
+ <el-checkbox v-model="printPaper">打印小票</el-checkbox>
+ </el-row>
- <label class="col-sm-2 control-label">充值金额</label>
- <div class="col-sm-4">
- <input autocomplete="off" type="text" class="form-control" name="bjmoney" value="0"
- onchange="changePayMoney('p0',this)"
- datatype="*" nullmsg="充值金额不能为空">
- <div class="Validform_checktip"></div>
- </div>
-
- <label class="col-sm-2 control-label">赠送金额</label>
- <div class="col-sm-4">
- <input autocomplete="off" type="text" class="form-control" value="0" dataType="n1-8"
- name="giftMoney" />
- <div class="Validform_checktip"></div>
- </div>
- </div>
- <div class="form-group">
-
- <label class="col-sm-2 control-label">赠送积分</label>
- <div class="col-sm-4">
- <input autocomplete="off" type="text" class="form-control" value="0" dataType="n1-8"
- name="jf" />
- <div class="Validform_checktip"></div>
- </div>
-
- <label class="col-sm-2 control-label">下单顾问</label>
- <div class="col-sm-4">
- <select class="autoFull select2 " style="width: 100%"
- th:data-url="@{/admin/getShopStaffByRoleName?roleName=健康顾问}"
- data-value="suId" data-filed="suName"
- th:data-def="${session.userInfo.suId }" name="staffId">
- </select>
- </div>
-
- </div>
- <div class="row ">
- <div class="col-sm-10 pd-20 col-sm-offset-1">
- <div class="panel-body">
- <table class="table table-condensed ">
- <thead>
- <tr>
- <th>序号</th>
- <th>商品名称</th>
- <th>分配金额</th>
- <th>美疗师业绩</th>
- <th>操作</th>
- </tr>
- </thead>
- <tbody id="tbody2">
- <tr id="p0">
- <td>1</td>
- <td>会籍卡充值</td>
- <td>0</td>
- <td>
- <table class="table table-condensed ">
- <tr>
- <td><select class="autoFull select2 input-sm" style="width: 80px;"
- th:data-url="@{/admin/getShopStaffByRoleName?roleName=美疗师}"
- data-value="suId" data-filed="suName"
- th:data-def="${session.userInfo.suId }"
- name="achaeveList[0].beaultId">
- </select></td>
- <td><input autocomplete="off" type="text" class="form-control input-sm" value="0"
- style="width: 80px" name="achaeveList[0].t1"></td>
- <td><button class="btn btn-danger btn-sm"
- onclick="deleteBeaute(this)">删除</button></td>
- </tr>
- </table>
- </td>
- <td><a class="btn btn-default btn-sm"
- onclick="addBeaute('p0','0')">添加</a></td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
-
-
- <div class="form-group ">
- <div class="col-sm-12 text-center">
- <a href="javascript:;" onclick="myForm.submit()"
- class="btn btn-success radius">保存</a>
- <button onclick="MTools.closeForm()" class="btn btn-danger radius"
- type="button">取消</button>
- </div>
- </div>
- </form>
- </c:if>
- <div th:if="${obj eq null }" class="text-center text-info">
- <h2>该会员没有可用的会员卡!</h2>
- </div>
-
+ <el-row style="text-align: center; margin: 10px 0 0 0">
+ <el-button type="primary" @click="submitRecharge">确认收款</el-button>
+ <el-button type="danger" @click="cancelSubmit">取消</el-button>
+ </el-row>
+ </el-dialog>
</div>
-<script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script><script type="text/javascript">
- $('.select2 ').select2();
- MTools.autoFullSelect();
- MTools.ininDatetimepicker({});
- var myForm = MForm.initForm({
- invokeUrl : basePath+"/admin/moneyCardUse/cz",
- isAutoClose : false,
- beforeSubmit : function() {
+<script type="text/javascript" th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script>
+<script type="text/javascript" th:src="@{/js/plugin/jquery.query.js}"></script>
+<script type="text/javascript" th:src="@{/plugin/layer/layer.js}"></script>
+<script type="text/javascript" th:src="@{/js/systools/AjaxProxyVue.js}"></script>
+<script type="text/javascript" th:src="@{/js/plugin/vue.js}"></script>
+<script type="text/javascript" th:src="@{/plugin/element-ui/index.js}"></script>
+<script type="text/javascript" th:inline="javascript">
+ var vipId = $.query.get("vipId");
- //校验业绩
- var ifAchieveOk = true;
- var achieveSum = 0;
- $("#tbody2").children("tr").each(
- function() {
- var tr = $(this);
- var pay = parseFloat(tr.find("td").eq(2).html());
-
- tr.find("td").eq(3).find("table").find("tr").each(
- function() {
- var achieve = parseFloat($(this).find("td")
- .eq(1).find("input").val());
- achieveSum += achieve;
- });
- if (achieveSum > pay) {
- ifAchieveOk = false;
- }
- });
- if(isNaN(achieveSum)){
- layer.msg("业绩金额格式错误", {
- icon : 2
- })
- return false;
- }
- if (!ifAchieveOk) {
- layer.msg("业绩金额不能大于支付金额", {
- icon : 2
- })
- return false;
- }
-
+ //<![CDATA[
+ var vue = new Vue({
+ el: '#app',
+ data : {
+ cardInfo : "",
+ loginUser : "",
+ rechargeMoney : "",
+ payMethods: [{
+ value: '现金支付',
+ img: '/images/pay/cash.png',
+ isActive: false,
+ type: '现金支付'
+ }, {
+ value: '微信',
+ img: '/images/pay/wechat.png',
+ isActive: false,
+ type: '微信'
+ }, {
+ value: '支付宝',
+ img: '/images/pay/zhifubao.png',
+ isActive: false,
+ type: '支付宝'
+ }, {
+ value: '银行卡',
+ img: '/images/pay/yinlian.png',
+ isActive: false,
+ type: '银行卡'
+ }, {
+ value: '团购',
+ img: '/images/pay/tuan.png',
+ isActive: false,
+ type: '团购'
+ }, ],
+ dialogSettleVisible : true,
+ defaultProps: {
+ children: 'children',
+ label: 'showLable'
+ },
+ achieveList : [],
+ userList: [],
+ treeSelect : [],
+ payMoneys : [],
+ printPaper : false,
},
- afterSubmit : function(loj) {
+ created : function() {
+ let _this = this;
+ this.cardInfo = /*[[${obj}]]*/
- layer.open({
- type: 2,
- title: "打印订单",
- area: ['250px', '550px'],
- maxmin: true,
- content: [basePath + '/admin/redirect/hive/beautySalon/print-order?id=' + loj.getResult().mapInfo.orderId],
- cancel: function (index, layer) {
- if (parent.app) {
- parent.app.vipInfoFn();
- } else {
- parent.selectByKey();
- }
- MTools.closeForm();
+ //获取用户列表
+ AjaxProxy.requst({
+ app: _this,
+ url: basePath + '/admin/shopAll',
+ callback: function (data) {
+ _this.userList = data.rows;
}
});
+ //获取登录用户信息
+ AjaxProxy.requst({
+ app: _this,
+ url: basePath + '/admin/getLoginUser',
+ callback: function (data) {
+ _this.loginUser = data.mapInfo.user;
+
+ _this.achieveList.push({
+ saleId: _this.loginUser.suId,
+ achieveMoney: 0,
+ commission : 0,
+ isShare: false,
+ });
+ }
+ });
},
- });
+ methods : {
+ submitRecharge() {
+ let _this = this;
+
+ if (!_this.rechargeMoney) {
+ this.$message.warning("请输入充值金额");
+ return;
+ }
+
+ if (_this.rechargeMoney < 0.1) {
+ this.$message.warning("0.1元起充");
+ return;
+ }
+
+ if (_this.payMoneys.length > 0) {
+ let flows = []
+ var total = 0;
+ _this.payMoneys.forEach(item => {
+ let flow = {};
+ flow.payMethod = item.type;
+ if (!item.money) {
+ this.$message.warning("请输入" + item.type + "的付款金额");
+ return false;
+ }
+ flow.amount = item.money;
+ total += item.money;
+ flows.push(flow);
+ })
+ if (total != _this.rechargeMoney) {
+ this.$message.warning("付款金额应等于充值金额");
+ return false;
+ }
+ _this.cardInfo.flows = flows;
+ } else {
+ this.$message.warning("请选择支付方式");
+ return false;
+ }
+
+ let achaeveList = [];
+ _this.achieveList.forEach(achieve => {
+ let achieveNew = {
+ beaultId: achieve.saleId,
+ t1: achieve.achieveMoney,
+ t3: '现金业绩',
+ projPercentage: achieve.commission,
+ };
+ achaeveList.push(achieveNew);
+ })
+ _this.cardInfo.bjmoney = _this.rechargeMoney;
+ _this.cardInfo.achaeveList = achaeveList;
+ let url = basePath + "/admin/moneyCardUse/cz";
+
+ console.log(_this.cardInfo);
+ AjaxProxy.requst({
+ app: _this,
+ data: _this.cardInfo,
+ url: url,
+ callback: function (data) {
+ if (_this.printPaper) {
+ _this.print();
+ }
+
+ if(parent.myGrid) {
+ parent.myGrid.serchData();
+ }
+
+ if (parent.app) {
+ parent.app.vipInfoFn();
+ }
+
+ _this.closeFrame();
+ }
+ });
+ },
+ cancelSubmit() {
+ this.closeFrame();
+ },
+ print() {
+ let _this = this;
+ if (_this.order.id) {
+ layer.open({
+ type: 2,
+ title: "打印订单",
+ area: ['250px', '550px'],
+ maxmin: true,
+ content: [basePath + '/admin/redirect/hive/beautySalon/print-order?id=' + this.order.id],
+ cancel: function (index, layero) {
+ _this.closeFram();
+ }
+ });
+ } else {
+ this.$message.warning("请先挂单在打印");
+ }
+ },
+ payMethodSelect(item, index) {
+ let _this = this;
+ let payMoneys = _this.payMoneys;
+ let rechargeMoney = _this.rechargeMoney;
+ if (!rechargeMoney) {
+ this.$message.warning("请输入充值金额");
+ return;
+ }
- //添加一个美疗师
- function addBeaute(trId, itemIndex) {
- if (!itemIndex) {
- itemIndex = 0;
+ if (rechargeMoney < 0.1) {
+ this.$message.warning("0.1元起充");
+ return;
+ }
+ if (item.type != '储值卡') {
+ this.$nextTick(function () {
+ if (item.isActive) {
+ Vue.set(item,'isActive',false);
+ var index = -1;
+ for (var i = 0; i < payMoneys.length; i++) {
+ let payMoney = payMoneys[i];
+ if (payMoney.value == item.value) {
+ index = i;
+ break;
+ }
+ }
+
+ if (index > -1) {
+ _this.payMoneys.splice(index, 1)
+ }
+ } else {
+ Vue.set(item,'isActive',true);
+ var hasAmount = 0;
+ for(var i = 0; i < payMoneys.length; i++) {
+ hasAmount += parseFloat(payMoneys[i].money);
+ }
+ if (_this.rechargeMoney - hasAmount > 0) {
+ Vue.set(item, 'money', _this.rechargeMoney - hasAmount);
+ }
+ _this.payMoneys.push(item);
+ }
+ });
+ }
+ },
+ closeFrame() {
+ parent.layer.close(parent.layer.getFrameIndex(window.name));
+ },
+ shareAchieve(index, row) {
+ row2 = JSON.parse(JSON.stringify(row));
+ row2.isShare = true;
+ this.achieveList.push(row2);
+ },
+ //删除业绩
+ delAchieve(index, row) {
+ this.achieveList.splice(index, 1);
+ },
}
- var id = MTools.randomStr();
- console.log(1);
- var table = $("#" + trId).find("td").eq(3).find("table")
-
- var achieveIndex = $("#" + trId).find("td").eq(3).find("table").find(
- "tr").length;
- var html = '<tr> <td><select class="autoFull select2 input-sm" id="'+id+'" name="achaeveList['+achieveIndex+'].beaultId" '
- +'data-url="'+basePath+'/admin/getShopStaffByRoleName?roleName=美疗师" data-value="suId" data-filed="suName" data-def=""'
- +'name="beatuyId"> </select></td> <td><input autocomplete="off" type="text" class="form-control input-sm" value="0" style="width: 80px" name="achaeveList['+achieveIndex+'].t1" '
- +'name="items['+achieveIndex+'].zkPrice" ></td> <td><button class="btn btn-danger btn-sm" onclick="deleteBeaute(this)" >删除</button></td> </tr>';
- $("#" + trId).find("td").eq(3).find("table").append(html);
- $('#' + id).select2({
- 'width' : '80px'
- });
- MTools.autoFullSelect({
- selecteder : '#' + id
- });
- };
- //删除一个美疗师
- function deleteBeaute(node) {
- $(node).closest("tr").remove();
- }
-
- //修改收款金额
- function changePayMoney(trId, node) {
- console.log(trId, node);
- $("#" + trId).find("td").eq(2).html($(node).val());
- };
+ });
+ //]]>
</script>
</body>
</html>
\ No newline at end of file
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 b4928db..55bf9b2 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
@@ -951,17 +951,30 @@
}
if (item.uuid == achieve.orderItem.uuid) {
let achieveNew = {
+ uuid:item.uuid,
beaultId: achieve.saleId,
t1: achieve.achieveMoney,
t3: achieve.t3,
projPercentage: achieve.commission,
};
- item.achaeveList.push(achieveNew);
+
+ 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);
+ }
break;
}
}
})
+ console.log(_this.order);
//校验业绩金额
if (_this.checkAchieve()) {
let url = basePath + "/admin/order/payOrder";
@@ -982,7 +995,7 @@
if (_this.printPaper) {
_this.print();
}
- _this.closeFram();
+ // _this.closeFram();
// _this.$confirm('结算成功,是否立刻打印小票?', '提示', {
// confirmButtonText: '打印',
// cancelButtonText: '取消',
@@ -1222,6 +1235,13 @@
}
} else {
Vue.set(item,'isActive',true);
+ var hasAmount = 0;
+ for(var i = 0; i < payMoneys.length; i++) {
+ hasAmount += parseFloat(payMoneys[i].money);
+ }
+ if (_this.order.payMoney - hasAmount > 0) {
+ Vue.set(item, 'money', _this.order.payMoney - hasAmount);
+ }
_this.payMoneys.push(item);
}
});
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 1c01d27..5453505 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
@@ -771,6 +771,13 @@
}
} else {
Vue.set(item,'isActive',true);
+ var hasAmount = 0;
+ for(var i = 0; i < payMoneys.length; i++) {
+ hasAmount += parseFloat(payMoneys[i].money);
+ }
+ if (_this.refundMoney - hasAmount > 0) {
+ Vue.set(item, 'money', _this.refundMoney - hasAmount);
+ }
_this.payMoneys.push(item);
}
});
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/pbxq-form.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/pbxq-form.html
index d7a795e..2a9aa0e 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/pbxq-form.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/pbxq-form.html
@@ -48,7 +48,7 @@
</el-row>
<el-row class="order-info" type="flex" justify="space-around" style="height: 150px; padding: 30px 30px;">
<el-col :span="5">
- <p>会员姓名:{{serviceOrderInfo.vipInfo.staffName}}</p>
+ <p>会员姓名:{{serviceOrderInfo.vipInfo.vipName}}</p>
<p>会员电话:{{serviceOrderInfo.vipInfo.phone}}</p>
</el-col>
<el-col :span="5">
@@ -81,7 +81,6 @@
width="200">
</el-table-column>
<el-table-column
- prop="address"
label="服务时间" :formatter="serviceTime">
</el-table-column>
<el-table-column
@@ -173,12 +172,14 @@
MTools.closeForm();
},
serviceTime(row, column) {
- if (!column.bedState) {
- return "-";
- }
- var startTime = moment(column.bedState.startTime).format("YYYY-MM-DD HH:mm");
- var endTime = moment(column.bedState.endTime).format("YYYY-MM-DD HH:mm");
- return startTime + "-" + endTime;
+ console.log(column);
+ console.log(row);
+ // if (!column.bedState) {
+ // return "-";
+ // }
+ var startTime = this.dateFormat(row.beginTime);
+ var endTime = this.dateFormat(row.endTime);
+ return startTime + " - " + endTime;
}
},
});
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/service_all_list.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/service_all_list.html
index 32a2969..785ca3a 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/service_all_list.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/service_all_list.html
@@ -76,7 +76,7 @@
<div class="form-group mr-20">
<button type="button" class="btn btn-my btn-sm" id="btn4" value="">全部</button>
<button type="button" class="btn btn-my btn-sm active" id="btn1" value="待预约">待预约</button>
- <button type="button" class="btn btn-my btn-sm" id="btn2" value="预约成功待处理">待派单</button>
+<!-- <button type="button" class="btn btn-my btn-sm" id="btn2" value="预约成功待处理">待派单</button>-->
<button type="button" class="btn btn-my btn-sm" id="btn3" value="需配料">待配料</button>
<button type="button" class="btn btn-my btn-sm" id="btn3" value="配料完成">待服务</button>
<button type="button" class="btn btn-my btn-sm" id="btn6" value="服务中">服务中</button>
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip.html
index 94115eb..ab0f2fc 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip.html
@@ -127,7 +127,6 @@
<el-button type="primary" plain @click="recharge">充值</el-button>
<el-button type="warning" plain @click="addOrder">开单</el-button>
<el-button type="success" plain @click="addServiceOrder">开服务单</el-button>
- <el-button type="danger" plain @click="returnMoney">退款</el-button>
</el-col>
</el-header>
<el-container>
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-sale-list.html b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-sale-list.html
index 4d459b9..9d71abc 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-sale-list.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-sale-list.html
@@ -53,9 +53,9 @@
data-width="30px">序号</th>
<th data-field="dataTime">日期</th>
<th data-field="shopName">门店名称</th>
- <th data-field="totalPay">应收金额</th>
+ <th data-field="shouldPay" data-formatter="shouldPayFormat">应收金额</th>
<th data-field="totalPay">实收金额</th>
- <th data-field="hisConsume">折扣金额</th>
+ <th data-field="shouldPay" data-formatter="zkAmountFormat">折扣金额</th>
<th data-field="perCustomCnt">客单数</th>
<th data-field="customGoodsCnt">客品数</th>
<th data-field="cost">成本</th>
@@ -79,8 +79,8 @@
<script type="text/javascript">
var myGrid;
var initParam = {
- format : "yyyy-mm-dd hh:ii", //默认显示年与日,如果想显示十分秒:"yyyy-mm-dd hh:ii:ss"
- minView: "hour", //"month",只显示年月日的选择,不会再跳转去选择时分秒;如果想要选择时分秒的:"hour"
+ format : "yyyy-mm-dd", //默认显示年与日,如果想显示十分秒:"yyyy-mm-dd hh:ii:ss"
+ minView: "month", //"month",只显示年月日的选择,不会再跳转去选择时分秒;如果想要选择时分秒的:"hour"
}
MTools.ininDatetimepicker(initParam);
//限制结束时间不小于开始时间
@@ -111,6 +111,14 @@
});
+ function shouldPayFormat(value, row, index) {
+ return row.shouldPay + row.refund;
+ }
+
+ function zkAmountFormat(value, row, index) {
+ return row.shouldPay + row.refund - row.totalPay;
+ }
+
function footCountTitle(data) {
return "<b>合计</b>";
};
--
Gitblit v1.9.1