From baa79615425b71521e67ec8a9344b88ce53fc5de Mon Sep 17 00:00:00 2001
From: jyy <935090232@qq.com>
Date: Fri, 12 Mar 2021 13:47:21 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/score_shop' into score_shop

---
 zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-apply.html              |   59 +
 zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml                           |   25 
 zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/underlineOrder.html    |   24 
 zq-erp/src/main/java/com/matrix/system/fenxiao/dto/ShopSalesmanAppliingDto.java         |    2 
 zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip.html               |   12 
 zq-erp/pom.xml                                                                          |    1 
 zq-erp/src/main/java/com/matrix/system/hive/statistics/AchieveAction.java               |   51 
 zq-erp/src/main/java/com/matrix/system/constance/Dictionary.java                        |    5 
 zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoUserAction.java            |   50 +
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java      |   22 
 zq-erp/src/main/resources/static/templates/vipInfoImport.xls                            |    0 
 zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml                    |   18 
 zq-erp/src/main/resources/config/db/increment/美度业绩升级.sql                                |   13 
 zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanGradeDao.xml               |   11 
 zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java    |   51 +
 zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml                           |   52 +
 zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/orderXq-form.html      |  150 +++-
 zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html        |  199 ++++--
 zq-erp/src/test/java/com/matrix/SourceFlowTests.java                                    |    2 
 zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanApplyDao.java            |    3 
 zq-erp/src/main/resources/mybatis/mapper/hive/SysProjServicesDao.xml                    |    6 
 zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java                 |   54 +
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java |   35 
 zq-erp/src/main/resources/mybatis/mapper/hive/SysBeauticianStateDao.xml                 |    3 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java         |    3 
 zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopSalesmanApply.java            |    3 
 zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml                         |  133 +--
 zq-erp/src/main/resources/templates/views/admin/hive-erp/order/orderXq-form.html        |  158 +++-
 zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderItem.java                      |   32 
 zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjServicesDao.java                 |    2 
 zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/pbxq-form.html         |    6 
 zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java                      |   10 
 zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanGradeDao.java            |    6 
 zq-erp/src/main/java/com/matrix/system/fenxiao/dto/AddSaleManApplyDto.java              |   17 
 zq-erp/src/main/java/com/matrix/system/fenxiao/vo/ShopSalesmanGradeVo.java              |   17 
 zq-erp/src/main/java/com/matrix/system/hive/bean/AchieveNew.java                        |  106 +--
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java        |  193 +++--
 zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml                       |   10 
 zq-erp/src/main/java/com/matrix/system/hive/action/ProjServiceController.java           |   19 
 zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/daily-list-new.html |  101 +-
 zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrder.java                          |   80 ++
 zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-list-new.html     |   36 
 zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderTask.java                    |    4 
 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                                                    |   11 
 zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml               |   22 
 47 files changed, 1,154 insertions(+), 667 deletions(-)

diff --git a/zq-erp/pom.xml b/zq-erp/pom.xml
index bcaf6b1..f11f7a0 100644
--- a/zq-erp/pom.xml
+++ b/zq-erp/pom.xml
@@ -401,7 +401,6 @@
 
 
 
-
                     <exclude>**/*.woff</exclude>
                     <exclude>**/*.woff2</exclude>
                     <exclude>**/*.ttf</exclude>
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/fenxiao/action/FenXiaoUserAction.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoUserAction.java
index 5538f6c..dbfae36 100644
--- a/zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoUserAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoUserAction.java
@@ -2,19 +2,26 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.matrix.core.constance.MatrixConstance;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.tools.StringUtils;
+import com.matrix.core.tools.WebUtil;
+import com.matrix.system.common.bean.SysUsers;
+import com.matrix.system.fenxiao.dto.AddSaleManApplyDto;
 import com.matrix.system.fenxiao.dto.ShopSalesmanAppliingDto;
 import com.matrix.system.fenxiao.dto.ShopSalesmanApplyDto;
 import com.matrix.system.fenxiao.service.ShopSalesmanApplyService;
 import com.matrix.system.fenxiao.vo.ShopSalesmanAppliingVo;
 import com.matrix.system.fenxiao.vo.ShopSalesmanApplyVo;
+import com.matrix.system.fenxiao.vo.ShopSalesmanGradeVo;
 import com.matrix.system.hive.action.util.QueryUtil;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 @RestController
 @RequestMapping(value = "/fenXiao/fenXiaoUser")
@@ -41,23 +48,12 @@
         	shopSalesmanApplyDto.setOrder("desc");
         }
         
-        
         Page<ShopSalesmanApplyVo> page = new Page(shopSalesmanApplyDto.getPageNum(), shopSalesmanApplyDto.getPageSize());
-        
         IPage<ShopSalesmanApplyVo> rows = shopSalesmanApplyService.findShopSalesmanApplyList(page,shopSalesmanApplyDto);
         AjaxResult result = AjaxResult.buildSuccessInstance(rows.getRecords(),rows.getTotal());
 
         return result;
     }
-    
-    /**
-     * 跳转 分销员待审核记录页面
-     *
-    @RequestMapping(value = "/shopSalesmanAppliing")
-    public String shopSalesmanAppliing() {
-        return "admin/fenxiao/fenxiao-apply";
-    }
-     */
     
 	/**
      *获取分销员待审核记录
@@ -71,8 +67,6 @@
     AjaxResult findShopSalesmanAppliingList(@RequestBody ShopSalesmanAppliingDto shopSalesmanAppliingDto) {
         //设置用户公司ID
         QueryUtil.setQueryLimitCom(shopSalesmanAppliingDto);
-        //查询条件待审核状态
-        shopSalesmanAppliingDto.setApplyStatus(1);
         //排序
         if(StringUtils.isBlank(shopSalesmanAppliingDto.getSort())){
         	shopSalesmanAppliingDto.setSort("create_time");
@@ -80,9 +74,37 @@
         }
 
         Page<ShopSalesmanAppliingVo> page = new Page(shopSalesmanAppliingDto.getPageNum(), shopSalesmanAppliingDto.getPageSize());
-        IPage<ShopSalesmanAppliingVo> rows = shopSalesmanApplyService.findShopSalesmanAppliingList(page,shopSalesmanAppliingDto);
+        IPage<ShopSalesmanAppliingVo> rows = shopSalesmanApplyService.selectBizUserApplyList(page,shopSalesmanAppliingDto);
+
+        //IPage<ShopSalesmanAppliingVo> rows = shopSalesmanApplyService.findShopSalesmanAppliingList(page,shopSalesmanAppliingDto);
         AjaxResult result = AjaxResult.buildSuccessInstance(rows.getRecords(),rows.getTotal());
         return result;
     }
 
+    /**
+     *获取对应的分销员等级
+     */
+    @RequestMapping(value = "/getShopSalesmanGrade")
+    private @ResponseBody AjaxResult getShopSalesmanGradeVo(){
+    	AjaxResult result= AjaxResult.buildSuccessInstance("查询成功");
+        SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+        
+        List<ShopSalesmanGradeVo> dataList = shopSalesmanApplyService.getShopSalesmanGradeVo(user.getCompanyId());
+        result.putInMap("salesGrade", dataList);
+        return result;
+    }
+    
+    /**
+     *新增分销员
+     */
+    @ApiOperation(value = "新增分销员")
+    @PostMapping(value = "/addSaleManApply")
+    public @ResponseBody
+    AjaxResult findShopSalesmanAppliingList(@RequestBody AddSaleManApplyDto addSaleManApplyDto) {
+        AjaxResult result= AjaxResult.buildSuccessInstance("设置成功");
+        SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+        shopSalesmanApplyService.addSaleManApply(addSaleManApplyDto.getUserId(),addSaleManApplyDto.getGradeId());
+		return result;
+    }
+
 }
diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanApplyDao.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanApplyDao.java
index 5ef99b9..3658015 100644
--- a/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanApplyDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanApplyDao.java
@@ -28,4 +28,7 @@
 	IPage<ShopSalesmanAppliingVo> findShopSalesmanAppliingList(Page<ShopSalesmanAppliingVo> page,
 			@Param("record")ShopSalesmanAppliingDto shopSalesmanAppliingDto);
 
+	IPage<ShopSalesmanAppliingVo> selectBizUserApplyList(Page<ShopSalesmanAppliingVo> page,
+			@Param("record")ShopSalesmanAppliingDto shopSalesmanAppliingDto);
+
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanGradeDao.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanGradeDao.java
index 52a7bb6..d1326a1 100644
--- a/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanGradeDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanGradeDao.java
@@ -2,6 +2,10 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.matrix.system.fenxiao.entity.ShopSalesmanGrade;
+import com.matrix.system.fenxiao.vo.ShopSalesmanGradeVo;
+import io.lettuce.core.dynamic.annotation.Param;
+
+import java.util.List;
 
 /**
  * @description 推广员等级
@@ -10,4 +14,6 @@
  */
 public interface ShopSalesmanGradeDao extends BaseMapper<ShopSalesmanGrade> {
 
+	List<ShopSalesmanGradeVo> getShopSalesmanGradeVo(@Param("companyId")Long companyId);
+
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/AddSaleManApplyDto.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/AddSaleManApplyDto.java
new file mode 100644
index 0000000..fefa925
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/AddSaleManApplyDto.java
@@ -0,0 +1,17 @@
+package com.matrix.system.fenxiao.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "AddSaleManApplyDto", description = "查询参数")
+public class AddSaleManApplyDto {
+	
+	@ApiModelProperty(value ="会员ID")
+    private String userId;
+	
+	@ApiModelProperty(value ="等级ID")
+    private String gradeId;
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/ShopSalesmanAppliingDto.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/ShopSalesmanAppliingDto.java
index 11227e7..3672483 100644
--- a/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/ShopSalesmanAppliingDto.java
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/ShopSalesmanAppliingDto.java
@@ -15,8 +15,6 @@
 	
 	@ApiModelProperty(hidden = true)
 	private Long companyId;
-	@ApiModelProperty(hidden = true)
-	private Integer applyStatus;
 
 	
 }
diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopSalesmanApply.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopSalesmanApply.java
index fc2bfd5..7894732 100644
--- a/zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopSalesmanApply.java
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopSalesmanApply.java
@@ -63,6 +63,9 @@
 	@ApiModelProperty(value = "备注")
 	private String  remark;
 	
+	@ApiModelProperty(value = "等级ID")
+	private long  gradeId;
+	
 	/**
 	 * 公司ID
 	 */
diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java
index 6d64b59..fc38e81 100644
--- a/zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java
@@ -1,5 +1,7 @@
 package com.matrix.system.fenxiao.service;
 
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -14,15 +16,19 @@
 import com.matrix.system.common.interceptor.HostInterceptor;
 import com.matrix.system.fenxiao.constant.FenxiaoSettingConstant;
 import com.matrix.system.fenxiao.dao.ShopSalesmanApplyDao;
+import com.matrix.system.fenxiao.dao.ShopSalesmanGradeDao;
 import com.matrix.system.fenxiao.dto.ShopSalesmanAppliingDto;
 import com.matrix.system.fenxiao.dto.ShopSalesmanApplyDto;
 import com.matrix.system.fenxiao.entity.ShopSalesmanApply;
+import com.matrix.system.fenxiao.entity.ShopSalesmanGrade;
 import com.matrix.system.fenxiao.vo.ShopSalesmanAppliingVo;
 import com.matrix.system.fenxiao.vo.ShopSalesmanApplyVo;
+import com.matrix.system.fenxiao.vo.ShopSalesmanGradeVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * @description 推广员申请记录
@@ -38,6 +44,9 @@
 
     @Autowired
     ShopSalesmanApplyDao salesmanApplyDao;
+    
+    @Autowired
+    ShopSalesmanGradeDao shopSalesmanGradeDao;
 
     @Autowired
     private BizUserDao bizUserDao;
@@ -51,7 +60,7 @@
      * @param invitationId
      * @return
      */
-    public ShopSalesmanApply applyToBeAnSalesman(String openId, String invitationId) {
+    public ShopSalesmanApply applyToBeAnSalesman(String openId,String gradeId,String invitationId) {
 
         BizUser loginUser=bizUserDao.findByOpenId(openId);
         //校验审核状态,和是否重复发起
@@ -63,6 +72,7 @@
 
             ShopSalesmanApply shopSalesmanApply=new ShopSalesmanApply();
             shopSalesmanApply.setUserId(openId);
+            
             shopSalesmanApply.setCreateBy(loginUser.getNickName());
             shopSalesmanApply.setApplyWay(ShopSalesmanApply.APPLY_WAY_SELF);
 
@@ -77,6 +87,16 @@
             }else if(StringUtils.isNotBlank(loginUser.getParentOpenId())){
                 //如果曾经是被邀请进来的则自动绑定为之前邀请人的下级
                 shopSalesmanApply.setParentUserId(loginUser.getParentOpenId());
+            }
+            if(StringUtils.isNotBlank(gradeId)){
+            	shopSalesmanApply.setGradeId(Long.parseLong(gradeId));
+            }else{
+                //获取初始等级ID(公司id,是否为初始等级)
+                Wrapper<ShopSalesmanGrade> queryWrapperOrepool = new QueryWrapper<>();
+                ((QueryWrapper<ShopSalesmanGrade>) queryWrapperOrepool).eq("company_id", loginUser.getCompanyId());
+                ((QueryWrapper<ShopSalesmanGrade>) queryWrapperOrepool).eq("is_default", 1);
+                ShopSalesmanGrade shopSalesmanGrade = shopSalesmanGradeDao.selectOne(queryWrapperOrepool);
+            	shopSalesmanApply.setGradeId(shopSalesmanGrade.getId());
             }
 
             BusParameterSettings busParameterSettings = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_AUDIT_METHOD, HostInterceptor.getCompanyId());
@@ -106,4 +126,33 @@
 		return salesmanApplyDao.findShopSalesmanAppliingList(page,shopSalesmanAppliingDto);
 	}
 
+    public IPage<ShopSalesmanAppliingVo> selectBizUserApplyList(Page<ShopSalesmanAppliingVo> page, ShopSalesmanAppliingDto shopSalesmanAppliingDto) {
+        return salesmanApplyDao.selectBizUserApplyList(page,shopSalesmanAppliingDto);
+    }
+
+	public List<ShopSalesmanGradeVo> getShopSalesmanGradeVo(Long companyId) {
+		return shopSalesmanGradeDao.getShopSalesmanGradeVo(companyId);
+	}
+
+	public void addSaleManApply(String userId,String gradeId) {
+		BizUser user = bizUserDao.selectById(userId);
+		
+		applyToBeAnSalesman(user.getOpenId(),gradeId, "");
+	}
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/vo/ShopSalesmanGradeVo.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/vo/ShopSalesmanGradeVo.java
new file mode 100644
index 0000000..7704375
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/vo/ShopSalesmanGradeVo.java
@@ -0,0 +1,17 @@
+package com.matrix.system.fenxiao.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "ShopSalesmanGradeVo", description = "返参")
+public class ShopSalesmanGradeVo {
+	
+	@ApiModelProperty(value = "id")
+    private Long id;
+
+	@ApiModelProperty(value = "等级名称")
+	private String  name;
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java b/zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java
index 2399c96..e1f1896 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java
@@ -1,5 +1,6 @@
 package com.matrix.system.hive.action;
 
+import cn.hutool.core.collection.CollUtil;
 import com.matrix.component.rabbitmq.RabiitMqTemplate;
 import com.matrix.core.constance.MatrixConstance;
 import com.matrix.core.exception.GlobleException;
@@ -21,6 +22,8 @@
 import com.matrix.system.hive.pojo.ShoppingCarItem;
 import com.matrix.system.hive.pojo.ShoppingCarItemsVo;
 import com.matrix.system.hive.service.*;
+import com.matrix.system.shopXcx.mqTask.MQTaskRouting;
+import com.matrix.system.wechart.templateMsg.UniformMsgParam;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Controller;
@@ -40,7 +43,6 @@
 import java.net.URLEncoder;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Date;
 import java.util.List;
 
 /**
@@ -54,6 +56,11 @@
 public class OrderController extends BaseController {
     @Resource
     private SysOrderService orderService;
+    @Autowired
+    ShoppingGoodsDao shoppingGoodsDao;
+
+    @Autowired
+    private CodeService codeService;
 
     @Autowired
     private SysOrderItemDao orderItemDao;
@@ -87,6 +94,10 @@
 
     @Autowired
     RabiitMqTemplate rabiitMqTemplate;
+
+    @Autowired
+    private SysProjServicesDao sysProjServicesDao;
+
     @Value("${evn}")
     private String evn;
 
@@ -123,14 +134,16 @@
     AjaxResult payOrder(@RequestBody SysOrder sysOrder) {
         SysUsers user = getMe();
         sysOrder.setShopId(user.getShopId());
+        sysOrder.setOrderType(SysOrder.ORDER_TYPE_SEAL);
+        sysOrder.setIsHasRefund(SysOrder.IS_HAS_REFUND_N);
         //校验订单是否满足结算调价,新订单则保存订单,已有订单则删除后更新
         sysOrder = orderService.checkAndSaveOrder(sysOrder);
         orderService.updateReceiptMoney(sysOrder);
 
         //发送微信公众号提醒
-//        UniformMsgParam uniformMsgParam=new UniformMsgParam(user.getCompanyId(),UniformMsgParam.GZH_GMCG);
-//        uniformMsgParam.put("orderId",sysOrder.getId());
-//        rabiitMqTemplate.sendMsg(MQTaskRouting.SEND_UNIFORM_TEMPLATE_MSG+evn,uniformMsgParam.toJSONString());
+        UniformMsgParam uniformMsgParam=new UniformMsgParam(user.getCompanyId(),UniformMsgParam.GZH_GMCG);
+        uniformMsgParam.put("orderId",sysOrder.getId());
+        rabiitMqTemplate.sendMsg(MQTaskRouting.SEND_UNIFORM_TEMPLATE_MSG+evn,uniformMsgParam.toJSONString());
 
 
         //处理用户购买的产品
@@ -146,7 +159,6 @@
      */
     @RequestMapping(value = "/refundOrder")
     @ResponseBody
-    @Transactional(rollbackFor = Exception.class)
     public AjaxResult refundOrder(@RequestBody SysOrder sysOrder) {
         //储值卡订单不能通过退款渠道退款
         if(CollectionUtils.isNotEmpty(sysOrder.getItems())){
@@ -157,17 +169,6 @@
                 }
             }
         }
-
-
-
-        SysUsers user = getMe();
-        sysOrder.setShopId(user.getShopId());
-        sysOrder.setStatu(Dictionary.ORDER_STATU_TK);
-        sysOrder.setOrderTime(new Date());
-
-
-        //校验订单是否满足结算调价,新订单则保存订单,已有订单则删除后更新
-        sysOrder = orderService.checkAndSaveOrder(sysOrder);
         orderService.refundOrderMoney(sysOrder);
         //处理用户购买的产品
         return AjaxResult.buildSuccessInstance(Arrays.asList(sysOrder), "订单退款成功");
@@ -476,13 +477,22 @@
         if (order == null) {
             return new AjaxResult(AjaxResult.STATUS_FAIL, "订单不存在!");
         }
-        orderService.cancelOrder(id);
-        if (del > 0) {
-            orderService.removeById(id);
-            result.setInfo("删除成功!");
-        } else {
-            result.setInfo("取消成功!");
+
+        List<SysOrderItem> items = orderItemDao.selectByOrderId(id);
+        for (SysOrderItem item : items) {
+            List<SysProjServices> sysProjServices = sysProjServicesDao.selectProjServicesByOrderItemId(item.getId());
+            if (CollUtil.isNotEmpty(sysProjServices)) {
+                return new AjaxResult(AjaxResult.STATUS_FAIL, "订单存在进行中的服务单无法取消/删除");
+            }
         }
+
+        orderService.cancelOrder(id);
+//        if (del > 0) {
+//            orderService.removeById(id);
+//            result.setInfo("删除成功!");
+//        } else {
+            result.setInfo("取消成功!");
+//        }
         result.setStatus(AjaxResult.STATUS_SUCCESS);
 
         return result;
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/action/ProjServiceController.java b/zq-erp/src/main/java/com/matrix/system/hive/action/ProjServiceController.java
index 2fb6aa7..8deed2b 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/action/ProjServiceController.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/action/ProjServiceController.java
@@ -1,5 +1,6 @@
 package com.matrix.system.hive.action;
 
+import cn.hutool.core.collection.CollUtil;
 import com.matrix.core.anotations.RemoveRequestToken;
 import com.matrix.core.constance.MatrixConstance;
 import com.matrix.core.exception.GlobleException;
@@ -108,6 +109,14 @@
         }
         //补充服务单扩展信息===============
         List<SysBeauticianState> beauticianStateList = beauticianStateDao.selectBySerIds(id);
+        if (CollUtil.isNotEmpty(beauticianStateList)) {
+            for (SysBeauticianState sysBeauticianState : beauticianStateList) {
+                if (sysBeauticianState.getProjUse().getTaocanId() != null) {
+                    SysProjUse sysProjUse = projUseService.findById(sysBeauticianState.getProjUse().getTaocanId());
+                    sysBeauticianState.getProjInfo().setName(sysProjUse.getProjName()+"--"+sysBeauticianState.getProjInfo().getName());
+                }
+            }
+        }
         projServices.setServiceItems(beauticianStateList);
         SysBedState sysBedState = sysBedStateDao.selectBySerIdAndBedId(projServices.getId(), projServices.getBedId());
         projServices.setBedState(sysBedState);
@@ -303,6 +312,14 @@
 
         //补充服务单扩展信息===============
         List<SysBeauticianState> beauticianStateList = beauticianStateDao.selectBySerIds(projServices.getId());
+        if (CollUtil.isNotEmpty(beauticianStateList)) {
+            for (SysBeauticianState sysBeauticianState : beauticianStateList) {
+                if (sysBeauticianState.getProjUse().getTaocanId() != null) {
+                    SysProjUse sysProjUse = projUseService.findById(sysBeauticianState.getProjUse().getTaocanId());
+                    sysBeauticianState.getProjInfo().setName(sysProjUse.getProjName()+"--"+sysBeauticianState.getProjInfo().getName());
+                }
+            }
+        }
         projServices.setServiceItems(beauticianStateList);
 
         SysBedState sysBedState = sysBedStateDao.selectBySerIdAndBedId(projServices.getId(), projServices.getBedId());
@@ -492,7 +509,7 @@
         if (balanceverifyResult.isError()) {
             return new AjaxResult(AjaxResult.STATUS_FAIL, balanceverifyResult.getMsg());
         }
-        sysProjServices.setState(Dictionary.SERVICE_STATU_YYCG);
+        sysProjServices.setState(Dictionary.SERVICE_STATU_DYY);
         SysProjServices newSysProjServices = sysProjServicesService.addSysProjServices(sysProjServices);
         if (newSysProjServices != null) {
             return AjaxResult.buildSuccessInstance(Arrays.asList(newSysProjServices));
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 6a5a4f5..dcfc9cf 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,29 +91,7 @@
 	 */
 	private Double  hisConsume;
 			
-	
-	/**
-	 * 划扣金额 从卡中划扣钱买东西
-	 */
-	private Double  consume;
-			
-	
-	/**
-	 * 卡项,套餐,充值,开会籍卡
-	 */
-	private Double  cardCash;
-			
-	
-	/**
-	 * 现金单次,购买项目的业绩
-	 */
-	private Double  projCash;
-			
-	
-	/**
-	 * 现金产品,购买家居产品的钱
-	 */
-	private Double  goodsCash;
+
 			
 	
 	/**
@@ -155,11 +139,12 @@
 	 * 总金额
 	 */
 	private Double  zkTotal;
+
 	/**
 	 * 公司id
 	 */
 	private Long companyId;
-	
+
 	private String  t1;
 			
 	
@@ -167,11 +152,11 @@
 
 
 	/**
-	 * 业绩种类 1-现金业绩 2-划扣业绩
+	 * 业绩类型
 	 */
-	private String  t3;
-			
-	
+	private String  achieveType;
+
+
 	private String  t4;
 			
 	
@@ -251,17 +236,32 @@
 	private Date  endTime;
 
 
-	/**
-	 * 分配的业绩金额
-	 */
-	@Extend
-	private Double achieveMoney;
 
 	private String goodsNo;
 
 	private String goodsName;
 
 	private String type;
+
+	private String payMethod;
+
+	private String cateName;
+
+	public String getCateName() {
+		return cateName;
+	}
+
+	public void setCateName(String cateName) {
+		this.cateName = cateName;
+	}
+
+	public String getPayMethod() {
+		return payMethod;
+	}
+
+	public void setPayMethod(String payMethod) {
+		this.payMethod = payMethod;
+	}
 
 	public String getType() {
 		return type;
@@ -311,13 +311,6 @@
 		this.companyId = companyId;
 	}
 
-	public Double getAchieveMoney() {
-		return achieveMoney;
-	}
-
-	public void setAchieveMoney(Double achieveMoney) {
-		this.achieveMoney = achieveMoney;
-	}
 
 	public Date getBeginTime() {
 		return beginTime;
@@ -403,24 +396,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;
 	}
@@ -481,12 +458,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/SysOrder.java b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrder.java
index 7f34c77..835d02c 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrder.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrder.java
@@ -1,6 +1,5 @@
 package com.matrix.system.hive.bean;
 
-import com.fasterxml.jackson.annotation.JsonFormat;
 import com.matrix.core.tools.DateUtil;
 import org.springframework.format.annotation.DateTimeFormat;
 
@@ -16,7 +15,15 @@
  */
 public class SysOrder implements Serializable {
 
-	private static final long serialVersionUID = 1L;
+	/**
+	 * 订单类型-销售订单
+	 */
+	public static final int ORDER_TYPE_SEAL= 1;
+
+	/**
+	 * 订单类型-退款订单
+	 */
+	public static final int ORDER_TYPE_REFUND= 2;
 
 	/**
 	 * 序号
@@ -78,24 +85,24 @@
 	/**
 	 * 订单总价
 	 */
-	private double total;
+	private Double total;
 	/**
 	 * 折后价
 	 */
-	private double zkTotal;
+	private Double zkTotal;
 
 	/**
 	 * 现金支付金额
 	 */
-	private double cashPay;
+	private Double cashPay;
 	/**
 	 * 现金支付金额
 	 */
-	private double cardPay;
+	private Double cardPay;
 	/**
 	 * 欠款金额
 	 */
-	private double arrears;
+	private Double arrears;
 
 	/**
 	 * 店铺id
@@ -126,7 +133,12 @@
 	 * 会员姓名
 	 */
 	private String vipNo;
-	
+
+	/**
+	 * 订单类型1,销售订单,2退款订单
+	 */
+	private Integer orderType;
+
 	/* 会员手机号
 	 */
 	private String vipPhone;
@@ -165,12 +177,36 @@
 	 */
 	private Integer times;
 
+
 	private String type;
 
 	/**
 	 * 原有订单ID 退款时使用
 	 */
 	private Long oldOrderId;
+
+	/**
+	 * 该订单有退款
+	 */
+	public static final Integer IS_HAS_REFUND_Y = 1;
+
+	/**
+	 * 该订单无退款
+	 */
+	public static final Integer IS_HAS_REFUND_N = 2;
+
+	/**
+	 * 是否发生退款 1-是 2-否
+	 */
+	private Integer isHasRefund;
+
+	public Integer getIsHasRefund() {
+		return isHasRefund;
+	}
+
+	public void setIsHasRefund(Integer isHasRefund) {
+		this.isHasRefund = isHasRefund;
+	}
 
 	public Long getOldOrderId() {
 		return oldOrderId;
@@ -194,6 +230,14 @@
 
 	public void setShopShortName(String shopShortName) {
 		this.shopShortName = shopShortName;
+	}
+
+	public Integer getOrderType() {
+		return orderType;
+	}
+
+	public void setOrderType(Integer orderType) {
+		this.orderType = orderType;
 	}
 
 	public String getType() {
@@ -244,19 +288,19 @@
 		this.searchShop = searchShop;
 	}
 
-	public double getArrears() {
+	public Double getArrears() {
 		return arrears;
 	}
 
-	public void setArrears(double arrears) {
+	public void setArrears(Double arrears) {
 		this.arrears = arrears;
 	}
 
-	public double getCardPay() {
+	public Double getCardPay() {
 		return cardPay;
 	}
 
-	public void setCardPay(double cardPay) {
+	public void setCardPay(Double cardPay) {
 		this.cardPay = cardPay;
 	}
 
@@ -283,11 +327,11 @@
 	public void setEndTimeVo(Date endTimeVo) {
 		this.endTimeVo = endTimeVo;
 	}
-	public double getCashPay() {
+	public Double getCashPay() {
 		return cashPay;
 	}
 
-	public void setCashPay(double cashPay) {
+	public void setCashPay(Double cashPay) {
 		this.cashPay = cashPay;
 	}
 	
@@ -393,11 +437,11 @@
 		this.activity = activity;
 	}
 
-	public double getTotal() {
+	public Double getTotal() {
 		return total;
 	}
 
-	public void setTotal(double total) {
+	public void setTotal(Double total) {
 		this.total = total;
 	}
 
@@ -422,11 +466,11 @@
 		this.changeId = changeId;
 	}
 
-	public double getZkTotal() {
+	public Double getZkTotal() {
 		return zkTotal;
 	}
 
-	public void setZkTotal(double zkTotal) {
+	public void setZkTotal(Double zkTotal) {
 		this.zkTotal = zkTotal;
 	}
 
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..acd3b19 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
@@ -33,6 +33,11 @@
 	private Integer count;
 
 
+	/**
+	 * 退款数量
+	 */
+	private Integer refundCount;
+
 
 	/**
 	 * 是否为赠送和 是否
@@ -87,11 +92,8 @@
 	 * 欠款金额
 	 */
 	private Double arrears;
-	
 
-	
-	
-	//页面参数使用
+
 	/**
 	 * 付款方式
 	 */
@@ -108,8 +110,7 @@
 	 */
 	private Long cardId;
 	
-	
-	
+
 	/**
 	 * 是否为综合卡创建的订单明细
 	 * 1是
@@ -159,6 +160,14 @@
 		return preCount;
 	}
 
+	public Integer getRefundCount() {
+		return refundCount;
+	}
+
+	public void setRefundCount(Integer refundCount) {
+		this.refundCount = refundCount;
+	}
+
 	public void setPreCount(int preCount) {
 		this.preCount = preCount;
 	}
@@ -182,14 +191,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/dao/SysProjServicesDao.java b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjServicesDao.java
index 90c2647..4266fb8 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjServicesDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjServicesDao.java
@@ -68,4 +68,6 @@
 	 * @return
 	 */
 	int updateNoticeTimes(@Param("list")List<Long> noticedIds);
+
+	List<SysProjServices> selectProjServicesByOrderItemId(@Param("itemId") Long itemId);
 }
\ 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 c91af9b..2c4978c 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);
@@ -237,7 +237,7 @@
         if (Dictionary.ORDER_STATU_TK.equals(pageOrder.getStatu())) {
             achieveNew.setId(null);
             achieveNew.setProjPercentage(0 - achieveNew.getProjPercentage());
-            achieveNew.setT1((0 - Double.parseDouble(achieveNew.getT1())) + "");
+            achieveNew.setGoodsCash(0 - achieveNew.getGoodsCash());
         }
 
         achieveNew.setVipId(pageOrder.getVipId());
@@ -256,14 +256,6 @@
         achieveNew.setShoppingGoodsId(orderItem.getGoodsId());
         // 是否赠送
         achieveNew.setT2(orderItem.getIsFree());
-        // 根据商品类型设置业绩类型
-
-        if (Dictionary.ACHIEVE_TYPE_CASH.equals(achieveNew.getT3())){
-            achieveNew.setCardCash(Double.parseDouble(achieveNew.getT1()));
-        } else {
-            // 设置划扣金额
-            achieveNew.setConsume(Double.parseDouble(achieveNew.getT1()));
-        }
     }
 
     @Override
@@ -309,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..7fac417 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
@@ -176,11 +176,6 @@
 
     @Override
     public SysOrder checkAndSaveOrder(SysOrder sysOrder) {
-        // 收款改变订单状态
-        SysOrder source = null;
-        if (sysOrder.getId() != null) {
-            source = sysOrderDao.selectById(sysOrder.getId());
-        }
 
         // 计算订单折扣金额,收款情况下 计算订单总额
         double zkTotal = 0.0;
@@ -217,6 +212,10 @@
         SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
         sysOrder.setZkTotal(zkTotal);
         sysOrder.setStatu(orderStatus);
+        SysOrder source = null;
+        if (sysOrder.getId() != null) {
+            source = sysOrderDao.selectById(sysOrder.getId());
+        }
         sysOrder.setStaffId(source != null ? source.getStaffId() : user.getSuId());
         sysOrder.setCompanyId(source != null ? source.getCompanyId() : user.getCompanyId());
 
@@ -252,8 +251,6 @@
 
     /**
      * 取消订单
-     * 本方法无法退回多次不同卡项收款的订单
-     *
      * @param id
      * @return
      */
@@ -281,23 +278,22 @@
                 throw new GlobleException("订单已取消");
             }
 
-            List<SysOrderItem> sysOrderItems = orderItemDao.selectByOrderId(id);
+            List<SysOrderFlow> flows = sysOrderFlowDao.selectByOrderId(id);
+            // 非现金收款退回扣卡余额
+            for (SysOrderFlow flow : flows) {
+                if (SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) {
 
-            for (SysOrderItem orderItem : sysOrderItems) {
-
-                //非现金收款退回扣卡余额
-                if (StringUtils.isNotBlank(orderItem.getPayMethodDetail())) {
-
-                    MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(Long.parseLong(orderItem.getPayMethodDetail()));
+                    MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(flow.getCardId());
                     MoneyCardUseFlow moneyCardUseFlow = new MoneyCardUseFlow();
 
                     if (moneyCardUse != null) {
-
                         // 根据订单明细判断是赠送金额购买还是本金购买
-
-                        moneyCardUseFlow.setTotal(orderItem.getCardPay());
-                        moneyCardUse.setRealMoney(MoneyUtil.add(moneyCardUse.getRealMoney(), orderItem.getCardPay()));
-                        //TODO 目前无法退回到具体的赠送金额还是本金
+                        moneyCardUseFlow.setTotal(flow.getAmount().doubleValue());
+                        if (SysOrderFlow.IS_GIFT_Y.equals(flow.getIsGift())) {
+                            moneyCardUse.setGiftMoney(MoneyUtil.add(moneyCardUse.getGiftMoney(), flow.getAmount().doubleValue()));
+                        } else {
+                            moneyCardUse.setRealMoney(MoneyUtil.add(moneyCardUse.getRealMoney(), flow.getAmount().doubleValue()));
+                        }
 
                         if (!moneyCardUse.getIsVipCar().equals(Dictionary.FLAG_YES_Y)) {
                             if (moneyCardUse.getLastCount() != null) {
@@ -319,29 +315,26 @@
                         moneyCardUseFlowDao.insert(moneyCardUseFlow);
                     }
                 }
+            }
+
+            List<SysOrderItem> sysOrderItems = orderItemDao.selectByOrderId(id);
+            for (SysOrderItem orderItem : sysOrderItems) {
                 // 充值卡类型退款
                 if (Dictionary.SHOPPING_GOODS_TYPE_CZK.equals(orderItem.getType())) {
-
                     ShoppingGoods shoppingGoods = shoppingGoodsDao.selectById(orderItem.getGoodsId());
-
-
                     //删除购买的充值卡
                     moneyCardUseDao.deleteByOrderItemId(orderItem.getId());
-
                 } else if (Dictionary.SHOPPING_GOODS_TYPE_XM.equals(orderItem.getType())
                         || Dictionary.SHOPPING_GOODS_TYPE_TC.equals(orderItem.getType())) {
                     // 项目套餐退款
                     // 删除套餐项目使用情况
                     sysProjUseDao.deleteByOrderItemId(orderItem.getId());
-
-
                 } else if (Dictionary.SHOPPING_GOODS_TYPE_ZHK.equals(orderItem.getType())) {
                     // 综合卡
                     // 删除套餐项目使用情况
                     sysProjUseDao.deleteByOrderItemId(orderItem.getId());
                     // 删除充值卡
                     moneyCardUseDao.deleteByOrderItemId(orderItem.getId());
-
                 }
             }
 
@@ -371,8 +364,6 @@
 
             // 取消订单
             order.setStatu(Dictionary.ORDER_STATU_YQX);
-
-
             return sysOrderDao.update(order);
         }
 
@@ -490,6 +481,10 @@
         if (!Dictionary.ORDER_STATU_DFK.equals(pageOrder.getStatu())) {
             throw new GlobleException("该订单已经收过款,请刷新页面再试!");
         }
+        // 更新收款时间
+        pageOrder.setPayTime(new Date());
+        pageOrder.setStatu(Dictionary.ORDER_STATU_YFK);
+        sysOrderDao.update(pageOrder);
 
         // 获取用户信息
         SysVipInfo vipInfo = sysVipInfoDao.selectById(pageOrder.getVipId());
@@ -499,8 +494,8 @@
             sysVipInfoDao.update(vipInfo);
         }
 
-        //设置订单的成交状态
-        changeOrderStatu(pageOrder);
+        //添加支付流水
+        addOrderFlow(pageOrder);
 
         // 设置会员充值卡使用情况
         addMoneyCardUse(pageOrder);
@@ -519,78 +514,57 @@
     }
 
     /**
-     * 收款改变订单状态,划扣金额
+     * 创建支付流水
      *
      * @author:姜友瑶
      */
-    private void changeOrderStatu(SysOrder sourceOrder) {
+    private void addOrderFlow(SysOrder sourceOrder) {
 
-        String orderStatus = Dictionary.ORDER_STATU_YFK;
-        String flowType = SysOrderFlow.FLOW_TYPE_BUY;
-        double cashPayTotal = 0D;
-        double cardPayTotal = 0D;
 
         //处理支付流水
         int flowCount = 1;
         for (SysOrderFlow flow : sourceOrder.getFlows()) {
-
             //支付内容摘要设置
             Long goodsId = sourceOrder.getItems().get(0).getGoodsId();
             ShoppingGoods goods = shoppingGoodsDao.selectById(goodsId);
             flow.setFlowContent(goods.getName() + "等" + sourceOrder.getItems().size() + "件产品");
-
             // 若是退款,则取负数
-            if (Dictionary.ORDER_STATU_TK.equals(sourceOrder.getStatu())) {
-                flowType = SysOrderFlow.FLOW_TYPE_REFUND;
+            if (SysOrder.ORDER_TYPE_REFUND==sourceOrder.getOrderType()) {
+                flow.setFlowType(SysOrderFlow.FLOW_TYPE_REFUND);
                 flow.setAmount(flow.getAmount().negate());
                 flow.setOrderId(sourceOrder.getOldOrderId());
             } else {
+                flow.setFlowType(SysOrderFlow.FLOW_TYPE_BUY);
                 flow.setOrderId(sourceOrder.getId());
             }
 
             //欠款处理
             if (SysOrderFlow.PAY_METHOD_ARREARS.equals(flow.getPayMethod())) {
-                orderStatus = Dictionary.ORDER_STATU_QK;
+                sourceOrder.setStatu(Dictionary.ORDER_STATU_QK);
                 sourceOrder.setArrears(flow.getAmount().doubleValue());
+                sysOrderDao.update(sourceOrder);
             }
 
             //统计储值卡支付
             if (SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) {
                 if (flow.getCardId() != null) {
                     MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(flow.getCardId());
-                    cardPayTotal += flow.getAmount().doubleValue();
-
                     //修改储值卡余额
                     cardPaySk(moneyCardUse, sourceOrder, flow);
                 }else{
                     throw new GlobleException("无效的储值卡支付方式");
                 }
             }
-            //统计现金支付
-            if (!SysOrderFlow.PAY_METHOD_ARREARS.equals(flow.getPayMethod())
-                    && !SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) {
-                cashPayTotal += flow.getAmount().doubleValue();
-            }
 
             flow.setFlowNo(codeService.getFlowCode() + "-" + flowCount);
             flow.setVipId(sourceOrder.getVipId());
-            flow.setFlowType(flowType);
             flow.setShopId(sourceOrder.getShopId());
             flow.setCompanyId(sourceOrder.getCompanyId());
             sysOrderFlowDao.insert(flow);
             flowCount++;
         }
 
-        //修改订单信息
-        if (Dictionary.ORDER_STATU_TK.equals(sourceOrder.getStatu())) {
-            orderStatus = Dictionary.ORDER_STATU_TK;
-        }
-        // 更新收款状态
-        sourceOrder.setPayTime(new Date());
-        sourceOrder.setStatu(orderStatus);
-        sourceOrder.setCardPay(cardPayTotal);
-        sourceOrder.setCashPay(cashPayTotal);
-        sysOrderDao.update(sourceOrder);
+
 
     }
 
@@ -701,6 +675,14 @@
             return true;
         } else {
             // 不是一卡通,
+            // 判断卡是否可应用于所有产品
+            ShoppingGoods cardGoods = shoppingGoodsDao.selectById(moneyCardUse.getGoodsId());
+            if (cardGoods != null) {
+                if (Dictionary.FLAG_YES.equals(cardGoods.getCarIsAll())) {
+                    return true;
+                }
+            }
+
             // 比较分类
             MoneyCardAssemble moneyCardAssemble = new MoneyCardAssemble();
             moneyCardAssemble.setCardId(moneyCardUse.getGoodsId());
@@ -1212,7 +1194,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);
@@ -1233,7 +1215,7 @@
         moneyCardUseFlowDao.insert(moneyCardUseFlow);
 
         order.setFlows(czVo.getFlows());
-        changeOrderStatu(order);
+        addOrderFlow(order);
         // 添加员工业绩
         achieveNewService.addAchaeveByOrder(order);
         return order;
@@ -1283,37 +1265,90 @@
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public void refundOrderMoney(SysOrder pageOrder) {
+    public void refundOrderMoney(SysOrder sysOrder) {
         SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
 
-        // 修改订单状态
-        changeOrderStatu(pageOrder);
+        //原订单设置为退款状态
+        SysOrder sourceOrder=new SysOrder();
+        sourceOrder.setId(sysOrder.getOldOrderId());
+        sourceOrder.setIsHasRefund(SysOrder.IS_HAS_REFUND_Y);
+//        sourceOrder.setStatu(Dictionary.ORDER_STATU_TK);
+        sysOrderDao.update(sourceOrder);
 
-        List<SysOrderItem> returnItems = new ArrayList<>();
-        for (SysOrderItem item : pageOrder.getItems()) {
+        sysOrder.setId(null);
+        sysOrder.setStaffId(user.getSuId());
+        sysOrder.setCompanyId(user.getCompanyId());
+        sysOrder.setShopId(user.getShopId());
+        sysOrder.setOrderType(SysOrder.ORDER_TYPE_REFUND);
+        sysOrder.setStatu(Dictionary.ORDER_STATU_YFK);
+        Date now = new Date();
+        sysOrder.setOrderTime(now);
+        sysOrder.setPayTime(now);
+        sysOrder.setOrderNo(codeService.getRefundOrderNo());
+        sysOrder.setZkTotal(-sysOrder.getZkTotal());
+        sysOrder.setOrderType(SysOrder.ORDER_TYPE_REFUND);
+        //新增订单
+        sysOrderDao.insert(sysOrder);
+        //插入明细
+        for (SysOrderItem item : sysOrder.getItems()) {
+
+            //更新原订单明细的可退数量
+            SysOrderItem oldItem=new SysOrderItem();
+            oldItem.setId(item.getId());
+            oldItem.setRefundCount(item.getCount());
+            orderItemDao.update(oldItem);
+
+            //插入新的订单明细
+            item.setId(null);
+            item.setCount(-item.getCount());
+            item.setOrderId(sysOrder.getId());
+            orderItemDao.insert(item);
+        }
+
+
+        // 添加订单收款流水
+        addOrderFlow(sysOrder);
+        //退款退套餐退项目
+        refundProjUse(sysOrder);
+
+        // 设置业绩
+        achieveNewService.addAchaeveByOrder(sysOrder);
+
+    }
+
+    /**
+     * 退款退项目,套餐,卡项
+     * @param sysOrder
+     */
+    private void refundProjUse(SysOrder sysOrder) {
+        SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+
+        //记录需要退库存的产品
+        List<SysOrderItem> returnGoodsList = new ArrayList<>();
+
+        for (SysOrderItem item : sysOrder.getItems()) {
 
             SysProjUse queryProjUse = new SysProjUse();
-            queryProjUse.setIsOver(Dictionary.FLAG_NO_N);
-            queryProjUse.setStatus(Dictionary.TAOCAN_STATUS_YX);
             queryProjUse.setOrderItemId(item.getOldItemId());
             // 修改项目信息
             if (Dictionary.SHOPPING_GOODS_TYPE_XM.equals(item.getType()) || Dictionary.SHOPPING_GOODS_TYPE_JJCP.equals(item.getType())) {
 
                 if (Dictionary.SHOPPING_GOODS_TYPE_JJCP.equals(item.getType())) {
                     if (Dictionary.FLAG_YES_Y.equals(item.getIsReturnStore())) {
-                        returnItems.add(item);
+                        returnGoodsList.add(item);
                     }
                 } else {
                     SysProjUse sysProjUse = sysProjUseDao.selectByModel(queryProjUse).get(0);
 
                     int sub = sysProjUse.getSurplusCount() - item.getCount();
-                    sysProjUse.setSurplusCount(sub);
-                    if (sub <= 0) {
+                    if (sub < 0) {
+                      throw new GlobleException("项目余次不足");
+                    }else if(sub==0){
                         sysProjUse.setIsOver(Dictionary.FLAG_YES_Y);
                         sysProjUse.setStatus(Dictionary.TAOCAN_STATUS_WX);
                     }
+                    sysProjUse.setSurplusCount(sub);
                     sysProjUseDao.update(sysProjUse);
-
                     SysProjUseFlow sysProjUseFlow = SysProjUseMapper.INSTANCE.projUseToFlow(sysProjUse);
                     sysProjUseFlow.setOptionType("退款修改");
                     sysProjUseFlow.setId(null);
@@ -1326,15 +1361,13 @@
             if (Dictionary.SHOPPING_GOODS_TYPE_TC.equals(item.getType())) {
                 queryProjUse.setTaocanId(-1L);
                 List<SysProjUse> sysProjUses = sysProjUseDao.selectByModel(queryProjUse);
-                if (item.getCount() > sysProjUses.size()) {
-                    throw new GlobleException("数据异常");
-                }
+
 
                 for (int i = 0; i < item.getCount(); i++) {
+
                     SysProjUse sysProjUse = sysProjUses.get(i);
                     sysProjUse.setIsOver(Dictionary.FLAG_YES_Y);
                     sysProjUse.setStatus(Dictionary.TAOCAN_STATUS_WX);
-
                     sysProjUseDao.update(sysProjUse);
                     SysProjUseFlow sysProjUseFlow = SysProjUseMapper.INSTANCE.projUseToFlow(sysProjUse);
                     sysProjUseFlow.setOptionType("退款修改");
@@ -1372,13 +1405,9 @@
         }
 
         // 家居产品退库存
-        if (CollectionUtils.isNotEmpty(returnItems)) {
-            refundInstore(returnItems);
+        if (CollectionUtils.isNotEmpty(returnGoodsList)) {
+            refundInstore(returnGoodsList);
         }
-
-        // 设置业绩
-        achieveNewService.addAchaeveByOrder(pageOrder);
-
     }
 
     /**
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java
index a3c5a75..cf0ae5a 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java
@@ -299,15 +299,13 @@
      */
     @Override
     public VerifyResult checkArrears(SysProjServices sysProjServices) {
-        //检测欠款
-       /* for (SysBeauticianState sysBeauticianState : sysProjServices.getServiceItems()) {
-
+        // 检测欠款
+       for (SysBeauticianState sysBeauticianState : sysProjServices.getServiceItems()) {
             SysProjUse sysProjUse = projUseService.findById(sysBeauticianState.getPuseId());
 
-
-
             ShoppingGoods shoppingGoods = shoppingGoodsDao.selectById(sysProjUse.getProjId());
-            SysOrderItem orderItem = sysOrderItemService.findById(sysProjUse.getOrderItemId());
+           SysOrderItem item = sysOrderItemService.findById(sysProjUse.getOrderItemId());
+           SysOrder orderItem = sysOrderService.findById(item.getOrderId());
             if ("购买".equals(sysProjUse.getSource())) {
                 // 如果用户有欠款,服务单总价不能超过已付金额
                 if (orderItem!=null && orderItem.getArrears() > 0) {
@@ -323,17 +321,17 @@
                     double money = MoneyUtil.sub((bj - orderItem.getArrears()), (yxfje + bcxfje));
                     // 如果 已付金额  - (已消费金额+本次消费金额)<0 则不能再消费
                    if (money < 0) {
-                        return new VerifyResult(true, shoppingGoods.getName() + "存在欠款" + orderItem.getArrears() + "元 , 订单编号[ " + sysOrderService.findById(orderItem.getOrderId()).getOrderNo() + " ] ");
+                        return new VerifyResult(true, shoppingGoods.getName() + "存在欠款" + orderItem.getArrears() + "元 , 订单编号[ " + orderItem.getOrderNo() + " ] ");
                     }
 
 
                 }
             } else if ("赠送".equals(sysProjUse.getSource())) {
                 if (orderItem!=null &&orderItem.getArrears() > 0) {
-                    return new VerifyResult(true, shoppingGoods.getName() + "存在欠款" + orderItem.getArrears() + "元 , 不能消费赠送项目,订单编号[ " + sysOrderService.findById(orderItem.getOrderId()).getOrderNo() + " ] ");
+                    return new VerifyResult(true, shoppingGoods.getName() + "存在欠款" + orderItem.getArrears() + "元 , 不能消费赠送项目,订单编号[ " + orderItem.getOrderNo() + " ] ");
                 }
             }
-        }*/
+        }
         return new VerifyResult(false);
     }
 
@@ -692,12 +690,29 @@
             sysOutStoreItemDao.batchInsert(realOutStoreItemList);
         }
         // 设置服务单状态
-        projServices.setState(Dictionary.SERVICE_STATU_PLWC);
+//        projServices.setState(Dictionary.SERVICE_STATU_PLWC);
+
+        projServices.setState(Dictionary.SERVICE_STATU_FWWC);
         if(projServices.getDevisionId()==null){
             //如果没有设置配料师则默认为操作配料的人为配料师
             projServices.setDevisionId(sysUsers.getSuId());
 
         }
+
+        // 释放床位资源
+        SysBedState checkBedState = sysBedStateDao.selectBySerIdAndBedId(projServices.getBedId(), projServices.getId());
+        if (checkBedState != null) {
+            checkBedState.setBedState(Dictionary.BED_STATE_SYJS);
+            bedStateDao.update(checkBedState);
+        }
+        projServices.setStartTime(new Date());
+        projServices.setEndTime(new Date());
+        // 计算时差
+        long minspace = DateUtil.getDifTimeMin(projServices.getStartTime(), projServices.getEndTime())
+                - projServices.getTotalTime();
+        // 判断是服务超时还是服务提前结束,如果minspace大于0则是超时服务,小于0则是提前结束服务
+        projServices.setIsOverTime(minspace + "");
+        projServices.setState(Dictionary.SERVICE_STATU_FWWC);
         return sysProjServicesDao.update(projServices);
     }
 
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..bdfbd01 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())){
@@ -106,21 +110,18 @@
                 temp.add(item.getYear());
                 temp.add(item.getMonth());
                 temp.add(item.getDay());
-                temp.add(item.getOrderType());
                 temp.add(item.getOrderNo());
-                temp.add(item.getLevelName());
+                temp.add(item.getOrderType());
                 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.getPayMethod());
+                temp.add(item.getGuwen());
+                temp.add(item.getMeiliao());
                 temp.add(item.getHisConsume());
                 temp.add(item.getFreeConsume());
                 temp.add(item.getProjPercentage());
-                temp.add(item.getGuwen());
-                temp.add(item.getMeiliao());
                 temp.add(item.getNumberOfPeople());
                 temp.add(item.getProjNum());
                 temp.add(item.getProjTime());
@@ -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/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java
index a47ba98..ea148ec 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java
@@ -54,6 +54,7 @@
     @Autowired
     ShopSalesmanApplyDao salesmanApplyDao;
 
+
     @Autowired
     ShopSalesmanApplyService shopSalesmanApplyService;
 
@@ -84,7 +85,7 @@
     public AjaxResult applyToBeAnSalesman(@RequestBody Map<String,String> param) {
         BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class);
         String invitationId = param.get("invitationId");
-        ShopSalesmanApply shopSalesmanApply= shopSalesmanApplyService.applyToBeAnSalesman(loginUser.getOpenId(),invitationId);
+        ShopSalesmanApply shopSalesmanApply= shopSalesmanApplyService.applyToBeAnSalesman(loginUser.getOpenId(),"",invitationId);
         loginUser=bizUserDao.selectById(loginUser.getUserId());
         redisUserLoginUtils.updateUserInfo(loginUser);
         return AjaxResult.buildSuccessInstance(shopSalesmanApply);
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 ddcf865..63374e7 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
@@ -89,7 +89,7 @@
     private ShopSalesmanGradeDao shopSalesmanGradeDao;
 
     @Transactional(rollbackFor = Exception.class)
-    public void synchronizationOrderToErp(ShopOrder orderDto) {
+    public void createOrder(ShopOrder orderDto) {
 
         //判断是否存在需要同步的产品,只有绑定了erp中产品的才同步
         boolean needTb=false;
@@ -127,7 +127,7 @@
             order.setTotal(orderDto.getOrderMoney().doubleValue());
             order.setZkTotal(orderDto.getOrderMoney().doubleValue());
             order.setPayTime(new Date());
-            order.setArrears(0);
+            order.setArrears(0D);
             int i = sysOrderDao.insert(order);
             // 创建订单明细,并计算总价与折扣总价
             int count = 0;
diff --git "a/zq-erp/src/main/resources/config/db/increment/\347\276\216\345\272\246\344\270\232\347\273\251\345\215\207\347\272\247.sql" "b/zq-erp/src/main/resources/config/db/increment/\347\276\216\345\272\246\344\270\232\347\273\251\345\215\207\347\272\247.sql"
new file mode 100644
index 0000000..dd65cdc
--- /dev/null
+++ "b/zq-erp/src/main/resources/config/db/increment/\347\276\216\345\272\246\344\270\232\347\273\251\345\215\207\347\272\247.sql"
@@ -0,0 +1,13 @@
+ALTER TABLE `achieve_new`
+    ADD COLUMN `achieveMoney` double(10, 0) NULL AFTER `company_id`;
+
+
+ALTER TABLE `sys_order`
+    ADD COLUMN `orderType` int(2) NULL COMMENT '订单类型1,销售订单,2退款订单' AFTER `company_id`;
+
+
+ALTER TABLE `achieve_new`
+    CHANGE COLUMN `t3` `achieveType` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL AFTER `t2`;
+
+ALTER TABLE `sys_order_item`
+    ADD COLUMN `refundCount` int(11) NULL COMMENT '退款数量' AFTER `pay_method_detail`;
diff --git a/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml b/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml
index d0d85cf..36c4159 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml
@@ -64,7 +64,7 @@
 		LEFT JOIN biz_user b ON a.user_id = b.user_id
 		LEFT JOIN shop_salesman_grade g ON b.salesman_grade = g.id
 		<where>
-			and a.company_id=#{record.companyId}
+		 	a.company_id=#{record.companyId}
 			<if test="record.shenheState != null and record.shenheState != ''">
 				and a.apply_status=#{record.shenheState}
 			</if>
@@ -82,7 +82,7 @@
 		shop_salesman_apply a
 		LEFT JOIN biz_user b ON a.user_id = b.user_id
 		<where>
-			and a.company_id = #{record.companyId}
+			a.company_id = #{record.companyId}
 		    and a.apply_status = #{record.applyStatus}
 			<if test="record.nickName != null and record.nickName != ''">
 				and b.nick_name like concat('%',#{record.nickName},'%')
@@ -93,5 +93,23 @@
 			a.${record.sort} ${record.order}
 		</if>
 	</select>
+	<select id="selectBizUserApplyList" resultType="com.matrix.system.fenxiao.vo.ShopSalesmanAppliingVo">
+		SELECT
+		a.user_id userId,
+		a.nick_name nickName
+		FROM
+		biz_user a
+		<where>
+			a.company_id = #{record.companyId}
+			and a.is_sales != 1
+			<if test="record.nickName != null and record.nickName != ''">
+				and a.nick_name like concat('%',#{record.nickName},'%')
+			</if>
+		</where>
+		<if test="record.sort !=null">
+			order by
+			a.${record.sort} ${record.order}
+		</if>
+	</select>
 
 </mapper>
\ No newline at end of file
diff --git a/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanGradeDao.xml b/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanGradeDao.xml
index 499ab09..311d174 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanGradeDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanGradeDao.xml
@@ -34,4 +34,15 @@
 			<result property="companyId" column="company_id" />
 	</resultMap>
 
+
+	<select id="getShopSalesmanGradeVo" resultType="com.matrix.system.fenxiao.vo.ShopSalesmanGradeVo">
+		SELECT
+		a.id,
+		a.name
+		FROM
+		shop_salesman_grade a
+		where
+		a.company_id = #{companyId}
+	</select>
+
 </mapper>
\ No newline at end of file
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 f28efbf..c99b814 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" />
@@ -30,7 +27,7 @@
 		<result property="projPercentage" column="proj_percentage" />
 		<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" />
@@ -52,7 +49,8 @@
 
 		<result property="goodsNo" column="goodsNo" />
 		<result property="goodsName" column="goodsName" />
-		<result property="zkPrice" column="zkPrice" />
+		<result property="payMethod" column="pay_method" />
+		<result property="cateName" column="cateName" />
 
 	</resultMap>
 
@@ -67,13 +65,8 @@
 		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,
+		b.ZK_TOTAL as zk_total,
 		a.goods_cash,
-		a.card_cash,
-		a.consume,
 		a.his_consume,
 		a.free_consume,
 		f.su_name meiliao,
@@ -82,9 +75,11 @@
 		a.number_of_people,
 		a.proj_num,
 		a.proj_time,
-		i.name as module_subName,
-		h.SHOP_NAME shop_name,
-		a.order_type
+		i.name as cateName,
+		h.shop_short_name shop_name,
+		a.order_type,
+		a.achieveType,
+		j.pay_method
 		from
 		achieve_new a
 		left join sys_order b on a.order_id=b.id
@@ -96,6 +91,7 @@
 		LEFT JOIN sys_shop_info h ON a.SHOP_ID = h.ID
 		LEFT JOIN shopping_goods_category i ON e.cate_id = i.id
 		left join sys_proj_services l on a.service_order_id=l.id
+		left join sys_order_item j on a.order_item_id=j.ID
 		<where>
 			<if test="record!=null">
 				<if
@@ -206,12 +202,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,
@@ -287,9 +279,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" />
@@ -298,9 +287,10 @@
 		<result property="remark" column="remark" />
 		<result property="orderType" column="order_type" />
 		<result property="projPercentage" column="proj_percentage" />
+
 		<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" />
@@ -323,9 +313,6 @@
 		vip_id,
 		free_consume,
 		his_consume,
-		consume,
-		card_cash,
-		proj_cash,
 		goods_cash,
 		proj_num,
 		number_of_people,
@@ -334,9 +321,10 @@
 		remark,
 		order_type,
 		proj_percentage,
+
 		t1,
 		t2,
-		t3,
+		achieveType,
 		t4,
 		t5,
 		t6,
@@ -359,9 +347,6 @@
 		#{item.vipId},
 		#{item.freeConsume},
 		#{item.hisConsume},
-		#{item.consume},
-		#{item.cardCash},
-		#{item.projCash},
 		#{item.goodsCash},
 		#{item.projNum},
 		#{item.numberOfPeople},
@@ -370,9 +355,10 @@
 		#{item.remark},
 		#{item.orderType},
 		#{item.projPercentage},
+
 		#{item.t1},
 		#{item.t2},
-		#{item.t3},
+		#{item.achieveType},
 		#{item.t4},
 		#{item.t5},
 		#{item.t6},
@@ -436,18 +422,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}
@@ -489,8 +465,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)  ">
@@ -584,15 +560,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>
@@ -617,14 +587,15 @@
 			<if test="_parameter.containsKey('projPercentage')">
 				proj_percentage = #{projPercentage},
 			</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},
@@ -703,15 +674,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>
@@ -736,14 +700,15 @@
 			<if test="record.projPercentage != null ">
 				proj_percentage = #{record.projPercentage},
 			</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},
@@ -784,6 +749,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>
 
 
@@ -857,7 +827,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 (
@@ -904,7 +874,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 (
@@ -940,8 +910,18 @@
 	<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,
+			(select ifnull(sum(case b.pay_method when '现金' then goods_cash else 0 end),0)
+				from achieve_new a
+				inner join sys_order_item b on a.order_item_id=b.ID
+			where a.beault_id=#{userId}
+			and (date_format(datatime, '%Y-%m-%d') >= date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d') >= date_format(datatime, '%Y-%m-%d'))
+			) orderCash,
+			(select ifnull(sum(case b.pay_method when '划扣' then goods_cash else 0 end),0)
+				from achieve_new a
+				inner join sys_order_item b on a.order_item_id=b.ID
+			where  a.beault_id=#{userId}
+			and (date_format(datatime, '%Y-%m-%d') >= date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d') >= date_format(datatime, '%Y-%m-%d'))
+			) cash,
 			sum(case order_type when '订单' then proj_percentage else 0 end) cardUse,
 			sum(IFNULL(his_consume, 0)) hisConsume,
 			sum(IFNULL(free_consume, 0)) freeConsume,
@@ -954,7 +934,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 = '订单'
@@ -989,7 +969,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
@@ -1022,7 +1002,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
@@ -1035,7 +1016,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
@@ -1065,7 +1046,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/mybatis/mapper/hive/SysBeauticianStateDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysBeauticianStateDao.xml
index 6262844..b74ebeb 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysBeauticianStateDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysBeauticianStateDao.xml
@@ -137,7 +137,8 @@
             d.id as pu_id,
             d.SURPLUS_COUNT as pu_SURPLUS_COUNT,
             d.ASSEMBLE_ID as pu_ASSEMBLE_ID,
-            d.price as pu_price
+            d.price as pu_price,
+		    d.taocan_id as pu_taocan_id
 
 
 		from sys_beautician_state a
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 6844dff..c412857 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml
@@ -709,7 +709,7 @@
                     </if>
                 ) refund,
                 (select IFNULL(count(1),0) from sys_order
-                    where STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+                    where STATU in ('已付款', '欠款') and orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
                     <if test="shopId != null">
                         and shop_id=#{shopId}
                     </if>
@@ -718,7 +718,7 @@
                     </if>
                     ) perCustomCnt,
                 (select IFNULL(sum(b.COUNT),0) from sys_order a inner join sys_order_item b on a.ID=b.ORDER_ID
-                    where a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+                    where a.STATU in ('已付款', '欠款') and a.orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
                     <if test="shopId != null">
                         and shop_id=#{shopId}
                     </if>
@@ -732,7 +732,7 @@
                     inner join sys_store_info d on c.store_id = d.ID
                     inner join sys_order_item e on a.ID=e.ORDER_ID
                     inner join shopping_goods f on e.goods_id=f.id and f.good_type='家居产品'
-                    where a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+                    where a.STATU in ('已付款', '欠款') and a.orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
                     <if test="shopId != null">
                         and a.shop_id=#{shopId}
                     </if>
@@ -743,7 +743,7 @@
                 (select IFNULL(sum(b.COUNT * IFNULL(c.price, 0)),0) from sys_order a
                     inner join sys_order_item b on a.ID=b.ORDER_ID
                     inner join shopping_goods c on c.good_type != '家居产品' and b.goods_id=c.id
-                    where a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+                    where a.STATU in ('已付款', '欠款') and a.orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
                     <if test="shopId != null">
                         and a.shop_id=#{shopId}
                     </if>
@@ -806,7 +806,7 @@
             #{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}]]>
+                where STATU in ('已付款', '欠款') and orderType=1 and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
                 <if test="shopId != null">
                     and shop_id=#{shopId}
                 </if>
@@ -869,13 +869,13 @@
             </if>
             ) refund,
             (select IFNULL(count(1),0) from sys_order
-            where STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+            where STATU in ('已付款', '欠款') and orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
             <if test="shopId != null">
                 and shop_id=#{shopId}
             </if>
             ) perCustomCnt,
             (select IFNULL(sum(b.COUNT),0) from sys_order a inner join sys_order_item b on a.ID=b.ORDER_ID
-            where a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+            where a.STATU in ('已付款', '欠款') and a.orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
             <if test="shopId != null">
                 and shop_id=#{shopId}
             </if>
@@ -886,7 +886,7 @@
             inner join sys_store_info d on c.store_id = d.ID
             inner join sys_order_item e on a.ID=e.ORDER_ID
             inner join shopping_goods f on e.goods_id=f.id and f.good_type='家居产品'
-            where a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+            where a.STATU in ('已付款', '欠款') and a.orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
             <if test="shopId != null">
                 and a.shop_id=#{shopId}
             </if>
@@ -894,7 +894,7 @@
             (select IFNULL(sum(b.COUNT * IFNULL(c.price, 0)),0) from sys_order a
             inner join sys_order_item b on a.ID=b.ORDER_ID
             inner join shopping_goods c on c.good_type != '家居产品' and b.goods_id=c.id
-            where a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+            where a.STATU in ('已付款', '欠款') and a.orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
             <if test="shopId != null">
                 and a.shop_id=#{shopId}
             </if>
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml
index 1e64c24..7bdfec4 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml
@@ -23,6 +23,7 @@
         <result property="vipNo" column="VIP_NO"/>
         <result property="staffName" column="STAFF_NAME"/>
         <result property="changeId" column="CHANGE_ID"/>
+        <result property="orderType" column="orderType"/>
 
         <result property="cashPay" column="cash_Pay"/>
         <result property="cardPay" column="card_Pay"/>
@@ -61,7 +62,9 @@
 		beatuyId,
 		beatuyName,
 		pay_time,
-		company_id
+		company_id,
+		orderType,
+        is_has_refund
 		)
 		VALUES (
 		#{id},
@@ -83,7 +86,9 @@
 		#{beatuyId},
 		#{beatuyName},
 		#{payTime},
-		#{companyId}
+		#{companyId},
+		#{orderType},
+		#{isHasRefund}
 		)
 	</insert>
 
@@ -140,9 +145,11 @@
             <if test="cashPay != null and cashPay  !='' ">
                 cash_Pay = #{cashPay},
             </if>
-
             <if test="payTime != null  ">
                 pay_time = #{payTime},
+            </if>
+            <if test="isHasRefund != null  ">
+                is_has_refund = #{isHasRefund},
             </if>
 
         </set>
@@ -229,6 +236,9 @@
             <if test="(record.companyId!=null and record.companyId!='') ">
                 and a.company_id = #{record.companyId}
             </if>
+            <if test="(record.orderType!=null and record.orderType!='') ">
+                and a.orderType = #{record.orderType}
+            </if>
             <if test="record.beginTimeVo != null  ">
                 and a.ORDER_TIME >= #{record.beginTimeVo}
             </if>
@@ -282,6 +292,9 @@
             </if>
             <if test="(record.companyId!=null and record.companyId!='') ">
                 and a.company_id = #{record.companyId}
+            </if>
+            <if test="(record.orderType!=null and record.orderType!='') ">
+                and a.orderType = #{record.orderType}
             </if>
             <if test="record.isCross != null and record.isCross !='' ">
                 and a.IS_CROSS = #{record.isCross}
@@ -405,6 +418,9 @@
             <if test="(record.companyId!=null and record.companyId!='') ">
                 and a.company_id = #{record.companyId}
             </if>
+            <if test="(record.orderType!=null and record.orderType!='') ">
+                and a.orderType = #{record.orderType}
+            </if>
 
         </if>
     </sql>
@@ -434,6 +450,9 @@
             <if test="(record.companyId!=null and record.companyId!='') ">
                 and a.company_id = #{record.companyId}
             </if>
+            <if test="(record.orderType!=null and record.orderType!='') ">
+                and a.orderType = #{record.orderType}
+            </if>
             <if test="record.activity != null and record.activity !='' ">
                 and a.ACTIVITY = #{record.activity}
             </if>
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml
index 6be411c..846e27b 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml
@@ -10,6 +10,7 @@
         <!-- <result property="projId" column="PROJ_ID" />
         <result property="skuId" column="SKU_ID" /> -->
         <result property="count" column="COUNT"/>
+        <result property="refundCount" column="refundCount"/>
         <!-- <result property="taocanId" column="TAOCAN_ID" /> -->
         <result property="isFree" column="IS_FREE"/>
         <result property="type" column="TYPE"/>
@@ -49,6 +50,7 @@
 		a.TOTAL,
 		a.SKU_ID,
 		b.COUNT,
+		b.refundCount,
 		b.ID,
 		b.IS_FREE,
 		b.ORDER_ID,
@@ -89,6 +91,7 @@
 		ID,
 		ORDER_ID,
 		COUNT,
+		refundCount,
 		TYPE,
 		IS_FREE,
 		PRICE,
@@ -106,6 +109,7 @@
 		#{id},
 		#{orderId},
 		#{count},
+		#{refundCount},
 		#{type},
 		#{isFree},
 		#{price},
@@ -131,6 +135,9 @@
             </if>
             <if test="count != null and count !='' or count == 0 ">
                 COUNT = #{count},
+            </if>
+            <if test="refundCount != null and refundCount !='' or refundCount == 0 ">
+                refundCount = #{refundCount},
             </if>
             <if test="isFree != null and isFree !='' ">
                 IS_FREE = #{isFree},
@@ -232,6 +239,7 @@
 		i.ID,
 		i.ORDER_ID,
 		i.COUNT,
+		i.refundCount,
 		i.TYPE,
 		i.IS_FREE,
 		i.PRICE,
@@ -289,6 +297,7 @@
 		ID,
 		ORDER_ID,
 		COUNT,
+		refundCount,
 		TYPE,
 		IS_FREE,
 		PRICE,
@@ -341,6 +350,7 @@
         c.name as goodsName,
         g.name as cateName,
         a.COUNT,
+        a.refundCount,
         a.ZK_PRICE,
         a.IS_FREE,
         a.pay_method,
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjServicesDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjServicesDao.xml
index cdb7e50..28022f2 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjServicesDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjServicesDao.xml
@@ -700,4 +700,10 @@
 	</select>
 
 
+	<select id="selectProjServicesByOrderItemId" resultMap="SysProjServicesMap">
+		select a.* from sys_proj_services a
+		  inner join sys_beautician_state b on a.id=b.SERVICES_ID
+		  inner join sys_proj_use c on c.id=b.puse_id
+		where ORDER_ITEM_ID=#{itemId} and a.STATE!='预约取消'
+	</select>
 </mapper>
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 aa09081..7a46366 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml
@@ -285,7 +285,7 @@
 		<foreach collection="list" index="index" item="item"   separator=","  >
 			(
 			select IFNULL(count(1),0) from sys_order
-			where STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+			where STATU in ('已付款', '欠款') and orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
 			<if test="shopId != null">
 				and shop_id=#{shopId}
 			</if>
@@ -304,7 +304,7 @@
 			select case a.perCustomCnt when 0 then 0 else a.totalSaleCnt/a.perCustomCnt end from (
 				select
 				(select IFNULL(count(1),0) from sys_order
-					where STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+					where STATU in ('已付款', '欠款') and orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
 					<if test="shopId != null">
 						and shop_id=#{shopId}
 					</if>
@@ -313,7 +313,7 @@
 					</if>
 				) perCustomCnt,
 				(select IFNULL(sum(b.COUNT),0) from sys_order a inner join sys_order_item b on a.ID=b.ORDER_ID
-					where a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+					where a.STATU in ('已付款', '欠款') and a.orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
 					<if test="shopId != null">
 						and shop_id=#{shopId}
 					</if>
@@ -334,7 +334,7 @@
 			select case a.perCustomCnt when 0 then 0 else a.totalPay/a.perCustomCnt end from (
 			select
 			(select IFNULL(count(1),0) from sys_order
-			where STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+			where STATU in ('已付款', '欠款') and orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
 			<if test="shopId != null">
 				and shop_id=#{shopId}
 			</if>
@@ -369,7 +369,7 @@
 						inner join sys_store_info d on c.store_id = d.ID
 						inner join sys_order_item e on a.ID=e.ORDER_ID
 						inner join shopping_goods f on e.goods_id=f.id and f.good_type='家居产品'
-						where a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+						where a.STATU in ('已付款', '欠款') and a.orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
 						<if test="shopId != null">
 							and a.shop_id=#{shopId}
 						</if>
@@ -380,7 +380,7 @@
 					(select IFNULL(sum(b.COUNT * IFNULL(c.price, 0)),0) from sys_order a
 						inner join sys_order_item b on a.ID=b.ORDER_ID
 						inner join shopping_goods c on c.good_type != '家居产品' and b.goods_id=c.id
-						where a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+						where a.STATU in ('已付款', '欠款') and a.orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
 						<if test="shopId != null">
 							and a.shop_id=#{shopId}
 						</if>
@@ -406,7 +406,7 @@
 						inner join sys_store_info d on c.store_id = d.ID
 						inner join sys_order_item e on a.ID=e.ORDER_ID
 						inner join shopping_goods f on e.goods_id=f.id and f.good_type='家居产品'
-						where a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+						where a.STATU in ('已付款', '欠款') and a.orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
 						<if test="shopId != null">
 							and a.shop_id=#{shopId}
 						</if>
@@ -417,7 +417,7 @@
 					(select IFNULL(sum(b.COUNT * IFNULL(c.price, 0)),0) from sys_order a
 						inner join sys_order_item b on a.ID=b.ORDER_ID
 						inner join shopping_goods c on c.good_type != '家居产品' and b.goods_id=c.id
-						where a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+						where a.STATU in ('已付款', '欠款') and a.orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
 						<if test="shopId != null">
 							and a.shop_id=#{shopId}
 						</if>
@@ -452,7 +452,7 @@
 						inner join sys_store_info d on c.store_id = d.ID
 						inner join sys_order_item e on a.ID=e.ORDER_ID
 						inner join shopping_goods f on e.goods_id=f.id and f.good_type='家居产品'
-						where a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+						where a.STATU in ('已付款', '欠款') and a.orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
 						<if test="shopId != null">
 							and a.shop_id=#{shopId}
 						</if>
@@ -463,7 +463,7 @@
 					(select IFNULL(sum(b.COUNT * IFNULL(c.price, 0)),0) from sys_order a
 						inner join sys_order_item b on a.ID=b.ORDER_ID
 						inner join shopping_goods c on c.good_type != '家居产品' and b.goods_id=c.id
-						where a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+						where a.STATU in ('已付款', '欠款') and a.orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
 						<if test="shopId != null">
 							and a.shop_id=#{shopId}
 						</if>
@@ -528,9 +528,18 @@
 			select
 				#{item.beginTime} time,
 				(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,
+				(select ifnull(sum(case b.pay_method when '现金' then goods_cash else 0 end),0)
+					from achieve_new a
+					inner join sys_order_item b on a.order_item_id=b.ID
+				where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) cashAmount,
+				(select ifnull(sum(case b.pay_method when '划扣' then goods_cash else 0 end),0)
+					from achieve_new a
+					inner join sys_order_item b on a.order_item_id=b.ID
+				where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) cardAmount,
+				(select ifnull(sum(case b.pay_method when '划扣' then goods_cash else 0 end),0)
+					from achieve_new a
+					inner join sys_order_item b on a.order_item_id=b.ID
+				where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) cardUseAmount,
 				(select ifnull(sum(ifnull(proj_percentage, 0)),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]> and order_type='订单') goodsAmount,
 				(select ifnull(sum(ifnull(his_consume, 0)),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) hisConsume,
 				(select ifnull(sum(ifnull(free_consume, 0)),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) freeConsume,
@@ -560,14 +569,14 @@
 	<select id="selectStaffCashAchieve" resultType="java.util.TreeMap">
 		select
 		<foreach collection="list" index="index" item="item"   separator=","  >
-			(select ifnull(sum(case t3 when '现金业绩' then card_cash else 0 end),0)
+			(select ifnull(sum(case b.pay_method when '现金' then goods_cash else 0 end),0)
 				from achieve_new a
-				where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>
-				<if test="staffId != null and staffId != 0">
-					and a.beault_id=#{staffId}
-				</if>
+				inner join sys_order_item b on a.order_item_id=b.ID
+			where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>
+			<if test="staffId != null and staffId != 0">
+				and a.beault_id=#{staffId}
+			</if>
 			) as t${index}
-
 		</foreach>
 		from area where id=1
 	</select>
@@ -575,8 +584,9 @@
 	<select id="selectStaffCardAchieve" resultType="java.util.TreeMap">
 		select
 		<foreach collection="list" index="index" item="item"   separator=","  >
-			(select ifnull(sum(case t3 when '划扣业绩' then consume else 0 end),0)
-			from achieve_new a
+			(select ifnull(sum(case b.pay_method when '划扣' then goods_cash else 0 end),0)
+				from achieve_new a
+				inner join sys_order_item b on a.order_item_id=b.ID
 			where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>
 			<if test="staffId != null and staffId != 0">
 				and a.beault_id=#{staffId}
diff --git a/zq-erp/src/main/resources/readme-jyy b/zq-erp/src/main/resources/readme-jyy
new file mode 100644
index 0000000..a6787a0
--- /dev/null
+++ b/zq-erp/src/main/resources/readme-jyy
@@ -0,0 +1,11 @@
+删除
+cardCash
+projCash
+只留下
+goodsCash
+产品现金业绩和划扣业绩consume
+
+重构订单,收款,退款等方法不要共用逻辑
+
+把所有历史订单的订单类型区分销售订单和退款订单
+
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/fenxiao/fenxiao-apply.html b/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-apply.html
index 5582db7..0f2728e 100644
--- a/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-apply.html
+++ b/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-apply.html
@@ -18,12 +18,6 @@
         .panel-body{
             overflow: hidden;
         }
-        .rowPanel{
-            background: #ffffff;
-            padding: 0px 10px ;
-            padding-top: 10px;
-            margin: 0px 0px 10px 0px;
-        }
         .paginationStyle{
             background: #ffffff;
             padding: 10px 10px;
@@ -34,7 +28,7 @@
 </head>
 <body>
 <div class="panel-body" id="app">
-    <el-row class="rowPanel"  >
+    <el-row style="display:flex;align-items: center;">
         <el-form ref="form" :model="form" inline >
             <el-form-item prop="nickName">
                 <el-input v-model="form.nickName" placeholder="请输入会员姓名"></el-input>
@@ -50,17 +44,28 @@
         <el-table id="proj" :data="table.rows"  :height="height" stripe @sort-change="sortChange">
             <el-table-column
                     prop="userId"
-                    label="订单号"
-                    width="180">
+                    label=""
+                    width="300">
             </el-table-column>
             <el-table-column
                     prop="nickname"
                     label="分销员昵称"
                     width="180">
             </el-table-column>
+            <el-table-column
+                    prop="salesGrade"
+                    label="分销等级"
+                    width="180">
+                <template slot-scope="scope">
+                    <el-select v-model="scope.row.proJbruserValue"  @focus="getDatalist(scope.row)" placeholder="请选择" filterable allow-create>
+                        <el-option v-for="item in salesGradeList " :key="item.id" :label="item.name" :value="item.id">
+                        </el-option>
+                    </el-select>
+                </template>
+            </el-table-column>
             <el-table-column label="操作">
                 <template slot-scope="scope">
-                    <el-button type="text" size="small">设置为分销员</el-button>
+                    <el-button type="text" size="small" @click="addSaleManApply(scope.row)">设置为分销员</el-button>
                 </template>
             </el-table-column>
         </el-table>
@@ -102,6 +107,8 @@
                 order:'',
                 sort:''
             },
+            proJbruserValue : "",
+            salesGradeList: [],
             height:'calc(100vh - 240px)',
         },
         created: function () {
@@ -109,6 +116,38 @@
             window.addEventListener("keydown", this.keydown);
         },
         methods: {
+            //设置为分销员
+            addSaleManApply(row){
+                let _this = this;
+                let userId = row.userId;
+                let gradeId = row.proJbruserValue;
+                alert(gradeId);
+                let obj = {
+                    userId: userId,
+                    gradeId: gradeId,
+                }
+                AjaxProxy.requst({
+                    app: _this,
+                    data:obj,
+                    url: basePath + '/fenXiao/fenXiaoUser/addSaleManApply',
+                    callback: function (data) {
+                        _this.$message.success(data.info);
+                        this.loadData();
+                    }
+                });
+            },
+            // select下拉框获取焦点的时候查询对应的下拉框数据源
+            getDatalist(row) {
+                let _this = this;
+                AjaxProxy.requst({
+                    app: _this,
+                    data:[],
+                    url: basePath + '/fenXiao/fenXiaoUser/getShopSalesmanGrade',
+                    callback: function (data) {
+                        _this.salesGradeList = data.mapInfo.salesGrade;
+                    }
+                });
+            },
             changePageSize(val) {
                 this.table.pageSize = val;
                 this.loadData();
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..35b61f7 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,77 @@
             },
             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;
+                for(let i=0 ; i< this.achieveItems.length; i++){
+                    let achieve=this.achieveItems[i];
+                    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 +950,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-erp/statistics/daily-list-new.html b/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/daily-list-new.html
index 43018b0..ced4453 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/daily-list-new.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/daily-list-new.html
@@ -26,7 +26,7 @@
 				<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  onclick="myGrid.resetForm()" type="button"   class="btn btn-default btn-sm"><i class="fa fa-refresh " ></i> 重置</button>
-					<button  matrix:btn="ygyjbbZb-exportExcel" onclick="exportExcel()" type="button" class="btn btn-default btn-sm"><i class="fa fa-download" ></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>
 			<div class="form-group mr-20">
@@ -71,12 +71,29 @@
 				<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 id="select_id"
-					class="form-control autoFull"
-					th:data-url="@{/admin/shopInfo/findShops}" data-value="id"
-					data-filed="shopName" data-def="${obj.shopId}" name="shopId">
-					<option value="">--请选择所属门店--</option>
+				<label>会员</label>
+				<input autocomplete="off" placeholder="姓名/编号/电话"  name="vipQueryKey" type="text" class="form-control"  >
+			</div>
+
+			<div class="form-group mr-20">
+				<label>美疗师</label>
+				<select class="form-control autoFull select2"
+						th:data-url="@{/admin/getShopStaffByRoleName?roleName=美疗师}"
+						data-value="suId"
+						data-filed="suName"
+						name="beaultId"
+						id="beaultId">
+					<option value="">--请选择美容师--</option>
+				</select>
+			</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/findAllWithPermi}">
+					<option value=''>--请选择部所属门店--</option>
 				</select>
 			</div>
 		</form>
@@ -87,32 +104,18 @@
 				<tr>
 					<th data-formatter="MGrid.indexfn" data-align="center"
 						data-width="30px" data-footer-formatter="footCountTitle">序号</th>
-						<th data-field="datatime"  >时间</th>
+					<th data-field="datatime">时间</th>
+					<th data-field="orderNo" data-formatter="buildOpenDetail" >订单编号</th>
 					<th data-field="orderType">订单类型</th>
-					<th data-field="orderNo"  data-formatter="buildOpenDetail" >订单编号</th>
-					<th data-field="levelName">会员级别</th>
-					<th data-field="vipName">姓名</th>
-					<th data-field="proName">项目名称</th>
-					<th data-field="zkTotal" data-footer-formatter="countColumn">总现金业绩
-						<i data-toggle="tooltip" data-placement="top" title="总现金业绩=售卡+项目+产品" class="fa fa-question-circle"></i>
-					</th>
-
-					<th data-field="cardCash"  data-footer-formatter="countColumn"  >售卡业绩
-						<i data-toggle="tooltip" data-placement="top" title="售卡业绩:现金购买充值卡,套餐,充值的收款金额" class="fa fa-question-circle"></i>
-					</th>
-
-					<th data-field="projCash" data-footer-formatter="countColumn">项目业绩
-						<i data-toggle="tooltip" data-placement="top" title="项目业绩:现金购买单个项目的业绩" class="fa fa-question-circle"></i>
-					</th>
-
-					<th data-field="goodsCash" data-footer-formatter="countColumn">产品业绩
-						<i data-toggle="tooltip" data-placement="top" title="产品业绩:现金购买产品的业绩" class="fa fa-question-circle"></i>
-					</th>
-
-					<th data-field="consume" data-footer-formatter="countColumn">余额划扣业绩
-						<i data-toggle="tooltip" data-placement="top" title="余额划扣业绩:从客户的充值卡余额中划扣消费的金额" class="fa fa-question-circle"></i>
-					</th>
-
+					<th data-field="vipName">会员姓名</th>
+					<th data-field="proName">产品</th>
+					<th data-field="cateName">产品分类</th>
+					<th data-field="zkTotal" data-footer-formatter="countColumn">订单金额</th>
+					<th data-field="goodsCash" data-footer-formatter="countColumn">订单业绩</th>
+					<th data-field="payMethod">收款方式</th>
+					<th data-field="achieveType">业绩类型</th>
+					<th data-field="guwen">顾问</th>
+					<th data-field="meiliao">美疗师</th>
 					<th data-field="hisConsume" data-footer-formatter="countColumn">本金消耗
 						<i data-toggle="tooltip" data-placement="top" title="消耗金额:客户做服务时划扣的本金" class="fa fa-question-circle"></i>
 					</th>
@@ -122,8 +125,6 @@
 					<th data-field="projPercentage" data-footer-formatter="countColumn">服务提成
 						<i data-toggle="tooltip" data-placement="top" title="服务提成:为美疗师手动设置的项目服务提成" class="fa fa-question-circle"></i>
 					</th>
-					<th data-field="guwen">顾问</th>
-					<th data-field="meiliao">美疗师</th>
 					<th data-field="numberOfPeople" data-footer-formatter="countColumn">人头</th>
 					<th data-field="projNum" data-footer-formatter="countColumn">项目个数</th>
 					<th data-field="projTime" data-footer-formatter="countColumn">项目时间</th>
@@ -144,7 +145,7 @@
 			}
 		 MTools.ininDatetimepicker(initParam);
 		//限制结束时间不小于开始时间
-		 MTools.limitStartEndTime({}); 
+		 MTools.limitStartEndTime({});
 		
 		var date = new Date();
 		var year = date.getFullYear();
@@ -163,6 +164,20 @@
 				$(this).attr("selected", true);
 			}
 		});
+
+		function buildOpenDetail(value, row, index){
+			var html = [];
+			if(row.orderType=='服务单'){
+				html[0] = '<a  onClick="fnPublci.showServiceOrder(1 , \'' + value +'\')"   class="text-primary " >'+value+'</a>'
+			}else{
+				html[0] = '<a  onClick="fnPublci.showOrder(1 , \'' + value +'\')"   class="text-primary " >'+value+'</a>'
+			}
+
+			return html.join("");
+		}
+
+
+
 
 		$(function() {
 			MTools.autoFullSelect();
@@ -188,7 +203,6 @@
 
 		});
 
-
 		function footCountTitle(data) {
 			return "<b>合计</b>";
 		};
@@ -204,25 +218,12 @@
 		
 		
 		function exportExcel(){
+
 			var param=MForm.toUrlParam("#serchform");
 
 			window.location.href=basePath+"/admin/achieve/exportDailyInfoNew?"+param;
 		}
-
-		function buildOpenDetail(value, row, index){
-			var html = [];
-			if(row.orderType=='服务单'){
-				html[0] = '<a  onClick="fnPublci.showServiceOrder(1 , \'' + value +'\')"   class="text-primary " >'+value+'</a>'
-			}else{
-				html[0] = '<a  onClick="fnPublci.showOrder(1 , \'' + value +'\')"   class="text-primary " >'+value+'</a>'
-			}
-
-			return html.join("");
-		}
-
-
-
-
+		
 	</script>
 </body>
 </html>
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 5d91b37..f6d935e 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,27 +430,26 @@
                                 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-select v-model="scope.row.achieveType" @change="calculationAchieve" 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>
                         </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>
@@ -461,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>
@@ -474,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>
@@ -574,6 +590,13 @@
             vipList: [],
             currentVipInfo: {},
             vipLoading: false,
+            itemSimplePayMethods:[{
+                value: '现金',
+                label:'现金',
+            },{
+                value: '划扣',
+                label:'划扣',
+            }],
             payMethods: [{
                 value: '现金支付',
                 img: '/images/pay/cash.png',
@@ -611,14 +634,11 @@
                 type: '欠款'
             },],
             achieveList: [],
+            //业绩岗位
+            achievePostList : [
+            ],
+            //业绩类型
             achieveTypeList : [
-                {
-                    "key" : "现金业绩",
-                    "value" : "现金业绩"
-                },{
-                    "key" : "划扣业绩",
-                    "value" : "划扣业绩"
-                },
             ],
             //会员可用的充值卡
             moneyCards: [],
@@ -660,12 +680,22 @@
             if (vipId) {
                 _this.changeVip(vipId);
             }
-            //获取用户列表
+            //获取业绩用户列表
             AjaxProxy.requst({
                 app: _this,
                 url: basePath + '/admin/shopAll',
                 callback: function (data) {
                     _this.userList = data.rows;
+                }
+            });
+
+
+            // 业绩类型
+            AjaxProxy.requst({
+                app: _this,
+                url: basePath + '/admin/customerDictionary/getListByParentCode/YJLX',
+                callback: function (data) {
+                    _this.achieveTypeList = data.rows;
                 }
             });
 
@@ -714,9 +744,9 @@
                                                     orderItem: item,
                                                     staff: _this.staffUser,
                                                     saleId: _this.staffUser.suId,
-                                                    achieveMoney: item.payMoney,
+                                                    goodsCash: item.payMoney,
                                                     commission : 0,
-                                                    t3 : '现金业绩',
+                                                    achieveType : _this.achieveTypeList[0].value,
                                                     isShare: false,
                                                 });
                                             });
@@ -801,7 +831,7 @@
              * @param{type} 1 = 购买 2=赠送
              * */
             pushToSelectGoods(goods, type) {
-
+                let _this=this;
                 //判断是否被选中
                 let selected = false;
                 this.order.items.forEach(item => {
@@ -841,8 +871,8 @@
                             orderItem: item,
                             staff: this.staffUser,
                             saleId: this.staffUser.suId,
-                            achieveMoney: item.payMoney,
-                            t3: '现金业绩',
+                            goodsCash: item.payMoney,
+                            achieveType : _this.achieveTypeList[0].value,
                             commission: 0,
                             isShare: false,
                         });
@@ -852,8 +882,8 @@
                             orderItem: item,
                             staff: this.loginUser,
                             saleId: this.loginUser.suId,
-                            achieveMoney: item.payMoney,
-                            t3: '现金业绩',
+                            goodsCash: item.payMoney,
+                            achieveType : _this.achieveTypeList[0].value,
                             commission: 0,
                             isShare: false,
                         });
@@ -900,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);
                             //计算欠款
@@ -946,14 +980,18 @@
                     let _this = this;
 
                     if(submitType == 1) {
+                        //校验支付方式
                         if (_this.payMoneys.length > 0) {
                             let flows = []
                             var total = 0;
-                            _this.payMoneys.forEach(item => {
+                            let isPayMethodOk=true;
+                            for(let i=0; i<_this.payMoneys.length;i++){
+                                let item = _this.payMoneys[i];
                                 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);
@@ -963,7 +1001,7 @@
                                 }
                                 total += parseFloat(item.money);
                                 flows.push(flow)
-                            })
+                            }
                             if (total != _this.order.payMoney) {
                                 this.$message.warning("输入付款总金额与应付金额不符");
                                 return false;
@@ -979,29 +1017,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,
-                                    t1: achieve.achieveMoney,
-                                    t3: achieve.t3,
                                     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;
                             }
                         }
@@ -1009,7 +1036,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";
@@ -1065,29 +1092,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;
-            },
+
 
             /**
              * 检查订单是否能够提交
@@ -1231,11 +1236,61 @@
             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;
+                for(let i=0 ; i< this.achieveList.length; i++){
+                    let achieve=this.achieveList[i];
+                    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;
@@ -1342,6 +1397,10 @@
                     return false;
                 }
 
+                if(!this.checkAchieveMoney()){
+                    return ;
+                }
+
                 _this.dialogSettleVisible = true;
             }
         }
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..be177b0 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
@@ -108,7 +108,8 @@
                         </el-col>
                         <el-col :span="14" style="text-align: right;">
                             <label>¥ {{order.total}}</label>
-                            <label>¥ {{(order.zkTotal - order.total).toFixed(2)}}</label>
+                            <!-- 退款订单不能显示为负数 -->
+                            <label>¥ {{(order.zkTotal - order.total>0?order.zkTotal - order.total:0).toFixed(2)}}</label>
                             <label>¥ {{order.zkTotal}}</label>
                             <label>¥ {{order.arrears}}</label>
                             <label>¥ {{order.repay}}</label>
@@ -179,6 +180,8 @@
                                     label="折扣单价">
                             </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>
@@ -254,11 +257,15 @@
                                         label="收款">
                                 </el-table-column>
                                 <el-table-column
-                                        prop="t3"
+                                        prop="payMethod"
+                                        label="支付方式">
+                                </el-table-column>
+                                <el-table-column
+                                        prop="achieveType"
                                         label="业绩类型">
                                 </el-table-column>
                                 <el-table-column
-                                        prop="t1"
+                                        prop="goodsCash"
                                         label="原业绩">
                                 </el-table-column>
                                 <el-table-column
@@ -308,15 +315,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 +336,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 +365,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 +464,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 +493,7 @@
             activeName : "first",
             circleUrl : "https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png",
             userList : [],
-            achieveTypeList : [
-                {
-                    "key" : "现金业绩",
-                    "value" : "现金业绩"
-                },{
-                    "key" : "划扣业绩",
-                    "value" : "划扣业绩"
-                },
-            ],
+            achieveTypeList : [],
             orderItems : [],
             achieveItems : [],
             flowItems : [],
@@ -546,8 +549,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() {
@@ -659,6 +669,10 @@
                 }
 
                 _this.data.items = dataItems;
+                _this.data.zkTotal =  _this.refundMoney;
+                _this.data.total =  _this.total;
+
+
                 AjaxProxy.requst({
                     app: _this,
                     data: _this.data,
@@ -712,6 +726,7 @@
                 let _this = this;
                 let items = this.orderItems;
                 _this.refundMoney = 0;
+                _this.total = 0;
 
                 for(var i = 0; i < items.length; i++) {
                     let item = items[i]
@@ -727,6 +742,8 @@
                         }
 
                         _this.refundMoney += parseFloat(item.refundPrice * item.refundCount);
+                        //记录一下未优惠之前的价格
+                        _this.total += parseFloat(item.price * item.refundCount);
                     }
                 }
 
@@ -737,7 +754,7 @@
                 _this.dialogSettleVisible = true;
             },
             calOrderTotalFormatter(row, column) {
-                return row.count * row.price;
+                return row.count * row.zkPrice;
             },
             getVipMoneyCards() {
                 let _this = this;
@@ -855,34 +872,77 @@
             },
             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;
+                for(let i=0 ; i< this.achieveItems.length; i++){
+                    let achieve=this.achieveItems[i];
+                    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;
+                            break;
+                        }
+                    }else{
+                        this.$message.error("【"+achieve.goodsName + "】业绩分配金额请填写数字");
+                        isOk=false;
+                        break;
+                    }
+                }
+                console.log("isOk",isOk);
+                return isOk;
+            },
+            //删除业绩
+            delAchieve(index, row) {
+                let _this = this;
                 _this.achieveItems.splice(index, 1);
+                this.calculationAchieve();
             },
             checkAchieveIsDel(items) {
                 var achieveIds = [];
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 59504c6..f76a2a6 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
@@ -76,17 +76,17 @@
                         <el-table-column
                                 prop="projInfo.name"
                                 label="商品名称"
-                                width="280">
+                                width="400">
                         </el-table-column>
                         <el-table-column
                                 :formatter="hkPrice"
                                 label="划扣金额"
-                                width="200">
+                                width="100">
                         </el-table-column>
                         <el-table-column
                                 prop="count"
                                 label="次数"
-                                width="200">
+                                width="100">
                         </el-table-column>
                         <el-table-column
                                 prop="projInfo.timeLength"
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/underlineOrder.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/underlineOrder.html
index 71fde37..787fd6f 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/underlineOrder.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/underlineOrder.html
@@ -220,20 +220,26 @@
     function cancelOrder() {
         var id=myGrid.getSelectItemId();
         layer.confirm('确定取消此订单?', {
-            btn: ['确认', '取消并删除', '取消'] //可以无限个按钮
+            btn: ['确认', '取消'] //可以无限个按钮
         }, function(index, layero){
             $.post(basePath+'/admin/order/cancelOrder?id='+id+'&del=0', {}, function(data){
-                parent.layer.msg(data.info,{icon: 1});
+                if (data.status == '200') {
+                    parent.layer.msg(data.info,{icon: 1});
+                } else {
+                    parent.layer.msg(data.info,{icon: 2});
+                }
                 layer.closeAll();
                 myGrid.serchData();
             });
-        }, function(index){
-            $.post(basePath+'/admin/order/cancelOrder?id='+id+'&del=1', {}, function(data){
-                parent.layer.msg(data.info,{icon: 1});
-                layer.closeAll();
-                myGrid.serchData();
-            });
-        }, function(index){
+        },
+        //     function(index){
+        //     $.post(basePath+'/admin/order/cancelOrder?id='+id+'&del=1', {}, function(data){
+        //         parent.layer.msg(data.info,{icon: 1});
+        //         layer.closeAll();
+        //         myGrid.serchData();
+        //     });
+        // },
+            function(index){
             //按钮【按钮二】的回调
         });
     }
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 5311542..77fec4b 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
@@ -457,8 +457,8 @@
                                 <el-table-column fixed="right" label="操作"  width="200">
                                     <template slot-scope="scope">
                                         <el-button type="text" size="small" @click="lookServiceOrder(scope.$index, scope.row)">查看</el-button>
-                                        <el-button matrix:btn="serviceClub-paiban" type="text" size="small" v-if="scope.row.state=='待预约'" @click="paiban(scope.$index, scope.row)">排班</el-button>
-                                        <el-button matrix:btn="serviceClub-paidan" type="text" size="small" v-if="scope.row.state=='预约成功待处理'" @click="giveServiceOrder(scope.$index, scope.row)">派单</el-button>
+                                        <el-button matrix:btn="serviceClub-paiban" type="text" size="small" v-if="scope.row.state=='预约成功待处理'" @click="paiban(scope.$index, scope.row)">排班</el-button>
+<!--                                        <el-button matrix:btn="serviceClub-paidan" type="text" size="small" v-if="scope.row.state=='预约成功待处理'" @click="giveServiceOrder(scope.$index, scope.row)">派单</el-button>-->
                                         <el-button matrix:btn="serviceClub-edit" type="text" size="small" v-if="scope.row.state=='预约成功待处理'" @click="modifyServiceOrder(scope.$index, scope.row)">修改</el-button>
                                         <el-button matrix:btn="serviceClub-peiliao" type="text" size="small" v-if="scope.row.state=='需配料'" @click="peiliao(scope.$index, scope.row)">配料</el-button>
                                         <el-button matrix:btn="serviceClub-huakou" type="text" size="small" v-if="scope.row.state=='服务完成'" @click="hkService(scope.$index, scope.row)">划扣</el-button>
@@ -532,14 +532,6 @@
                                 <el-table-column
                                         prop="staffName"
                                         label="下单顾问">
-                                </el-table-column>
-                                <el-table-column
-                                        prop="cashPay"
-                                        label="现金支付金额">
-                                </el-table-column>
-                                <el-table-column
-                                        prop="cardPay"
-                                        label="卡支付金额">
                                 </el-table-column>
                                 <el-table-column
                                         prop="arrears"
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-list-new.html b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-list-new.html
index e833811..ced4453 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-list-new.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-list-new.html
@@ -105,31 +105,17 @@
 					<th data-formatter="MGrid.indexfn" data-align="center"
 						data-width="30px" data-footer-formatter="footCountTitle">序号</th>
 					<th data-field="datatime">时间</th>
-					<th data-field="orderType">订单类型</th>
 					<th data-field="orderNo" data-formatter="buildOpenDetail" >订单编号</th>
-					<th data-field="levelName">会员级别</th>
-					<th data-field="vipName">姓名</th>
-					<th data-field="proName">项目名称</th>
-					<th data-field="zkTotal" data-footer-formatter="countColumn">总现金业绩
-						<i data-toggle="tooltip" data-placement="top" title="总现金业绩=售卡+项目+产品" class="fa fa-question-circle"></i>
-					</th>
-
-					<th data-field="cardCash"  data-footer-formatter="countColumn"  >售卡业绩
-						<i data-toggle="tooltip" data-placement="top" title="售卡业绩:现金购买充值卡,套餐,充值的收款金额" class="fa fa-question-circle"></i>
-					</th>
-
-					<th data-field="projCash" data-footer-formatter="countColumn">项目业绩
-						<i data-toggle="tooltip" data-placement="top" title="项目业绩:现金购买单个项目的业绩" class="fa fa-question-circle"></i>
-					</th>
-
-					<th data-field="goodsCash" data-footer-formatter="countColumn">产品业绩
-						<i data-toggle="tooltip" data-placement="top" title="产品业绩:现金购买产品的业绩" class="fa fa-question-circle"></i>
-					</th>
-
-					<th data-field="consume" data-footer-formatter="countColumn">余额划扣业绩
-						<i data-toggle="tooltip" data-placement="top" title="余额划扣业绩:从客户的充值卡余额中划扣消费的金额" class="fa fa-question-circle"></i>
-					</th>
-
+					<th data-field="orderType">订单类型</th>
+					<th data-field="vipName">会员姓名</th>
+					<th data-field="proName">产品</th>
+					<th data-field="cateName">产品分类</th>
+					<th data-field="zkTotal" data-footer-formatter="countColumn">订单金额</th>
+					<th data-field="goodsCash" data-footer-formatter="countColumn">订单业绩</th>
+					<th data-field="payMethod">收款方式</th>
+					<th data-field="achieveType">业绩类型</th>
+					<th data-field="guwen">顾问</th>
+					<th data-field="meiliao">美疗师</th>
 					<th data-field="hisConsume" data-footer-formatter="countColumn">本金消耗
 						<i data-toggle="tooltip" data-placement="top" title="消耗金额:客户做服务时划扣的本金" class="fa fa-question-circle"></i>
 					</th>
@@ -139,8 +125,6 @@
 					<th data-field="projPercentage" data-footer-formatter="countColumn">服务提成
 						<i data-toggle="tooltip" data-placement="top" title="服务提成:为美疗师手动设置的项目服务提成" class="fa fa-question-circle"></i>
 					</th>
-					<th data-field="guwen">顾问</th>
-					<th data-field="meiliao">美疗师</th>
 					<th data-field="numberOfPeople" data-footer-formatter="countColumn">人头</th>
 					<th data-field="projNum" data-footer-formatter="countColumn">项目个数</th>
 					<th data-field="projTime" data-footer-formatter="countColumn">项目时间</th>
diff --git a/zq-erp/src/test/java/com/matrix/SourceFlowTests.java b/zq-erp/src/test/java/com/matrix/SourceFlowTests.java
index 2858713..9c1a1bd 100644
--- a/zq-erp/src/test/java/com/matrix/SourceFlowTests.java
+++ b/zq-erp/src/test/java/com/matrix/SourceFlowTests.java
@@ -125,7 +125,7 @@
 
 		for (SysOrder sysOrder : sysOrders) {
 			sysOrder.setCashPay(sysOrder.getZkTotal());
-			sysOrder.setCardPay(0);
+			sysOrder.setCardPay(0D);
 			sysOrderDao.update(sysOrder);
 
 			List<SysOrderItem> items = sysOrderItemDao.selectByOrderId(sysOrder.getId());

--
Gitblit v1.9.1