From 91e4d0c81321f9ccfec7fca41898a00ff6f57001 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Thu, 10 Feb 2022 15:03:25 +0800
Subject: [PATCH] merge api_score_merge

---
 zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-setting.html                     |    6 
 zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip.html                        |   14 
 zq-erp/pom.xml                                                                                   |   17 
 zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/jyls.html                    |    5 
 zq-erp/src/main/resources/templates/views/admin/hive/statistics/statistics-order-item.html       |    5 
 zq-xcx/project.config.json                                                                       |  444 +++++-----
 zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/updateServiceOrderTimeV2.html   |  126 ++
 zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseFlowDao.xml                            |    6 
 zq-erp/src/main/java/com/matrix/system/hive/statistics/OrderFlowAction.java                      |    3 
 zq-erp/src/main/resources/config/lhx/config.json                                                 |    8 
 zq-erp/src/main/java/com/matrix/system/hive/dto/ServiceOrderTimeDto.java                         |   34 
 zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/orderXq-form.html               |    4 
 zq-erp/src/main/java/com/matrix/system/common/init/InitWebContainer.java                         |    8 
 zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html                 |    3 
 zq-erp/src/main/java/com/matrix/system/oa/actions/OaFixedAssetsAction.java                       |  273 +++--
 zq-erp/src/main/resources/mybatis/mapper/common/SysCompanyDao.xml                                |    3 
 zq-erp/src/main/resources/templates/views/admin/oa/assets/fixeAssets-list.html                   |    7 
 zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-order.html                       |    5 
 zq-erp/src/main/resources/templates/views/admin/shop/shopAdvertisType-list.html                  |    4 
 zq-erp/src/main/resources/config/mdprd/config.json                                               |    8 
 zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjServicesDao.java                          |    3 
 zq-erp/src/main/java/com/matrix/system/hive/service/SysProjUseService.java                       |    2 
 zq-erp/src/main/java/com/matrix/system/common/dao/SysRolePwoerFnDao.java                         |    1 
 zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjUseDao.java                               |    2 
 zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/updateServiceOrderTime.html     |    7 
 zq-erp/src/main/resources/templates/views/admin/hive/printTemplates/meidu.html                   |    6 
 zq-erp/src/main/resources/config/mdprd/application.properties                                    |    3 
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjUseServiceImpl.java               |    5 
 zq-erp/src/main/resources/config/dev/config.json                                                 |    8 
 zq-erp/src/main/resources/templates/views/admin/hive/printTemplates/print-service-meidu.html     |    8 
 zq-erp/src/main/resources/templates/views/admin/hive/statistics/statistics-projuse-item.html     |   10 
 zq-erp/src/main/java/com/matrix/system/hive/dao/MoneyCardUseFlowDao.java                         |    2 
 zq-erp/src/main/java/com/matrix/system/hive/bean/SysProjUse.java                                 |   12 
 zq-erp/src/main/resources/templates/views/admin/shop/shopProduct-form.html                       |   16 
 zq-erp/src/main/resources/templates/views/admin/hive/statistics/jyls.html                        |    5 
 zq-erp/src/main/java/com/matrix/system/hive/action/MoneyCardUseController.java                   |    4 
 zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopProductDao.xml                              |   11 
 zq-erp/src/main/java/com/matrix/system/constance/Dictionary.java                                 |    2 
 zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/statistics-projuse-item.html |    9 
 zq-erp/src/main/java/com/matrix/system/hive/statistics/OrderStatisticsAction.java                |    4 
 zq-erp/src/main/java/com/matrix/system/hive/statistics/ProjUseStatisticsAction.java              |    4 
 zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopProduct.java                             |    5 
 zq-erp/src/main/resources/config/prd/application.properties                                      |    2 
 zq-erp/src/main/java/com/matrix/system/common/dao/SysCompanyDao.java                             |    1 
 zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/service_all_list.html           |    2 
 zq-erp/src/main/resources/templates/views/admin/hive/products/shoppinggoods-zb-list.html         |    2 
 zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/cz-form.html                    |   16 
 zq-erp/src/main/resources/mybatis/mapper/hive/SysProjServicesDao.xml                             |    6 
 zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java                          |    2 
 zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/statistics-order-item.html   |    5 
 zq-erp/src/main/java/com/matrix/system/app/vo/ServiceTcVo.java                                   |   12 
 zq-erp/src/main/java/com/matrix/system/common/service/impl/SysCompanyServiceImpl.java            |  548 ++++++-----
 zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderFlowDao.xml                                |    7 
 zq-erp/src/main/resources/static/js/systools/AjaxProxyVue.js                                     |    4 
 zq-erp/src/main/resources/templates/views/admin/hive-erp/order/orderXq-form.html                 |    4 
 zq-erp/src/main/java/com/matrix/system/app/vo/ServiceProjVo.java                                 |   12 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WXShopOrderServiceImpl.java      |   15 
 zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml                                  |   13 
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java                 |    1 
 zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml                                |   11 
 zq-erp/src/main/resources/templates/views/admin/hive/products/shoppinggoods-md-list.html         |    2 
 zq-erp/src/main/resources/templates/views/admin/hive/vip/moneyCardUseFlow-list.html              |    1 
 zq-erp/src/main/resources/templates/views/super/sysCompany-form.html                             |  378 ++++----
 zq-erp/src/main/resources/mybatis/mapper/common/SysRolePwoerFnDao.xml                            |   19 
 zq-erp/src/main/java/com/matrix/system/hive/action/ProjServiceController.java                    |   50 
 zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/daily-list-new.html          |    2 
 zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderFlow.java                               |  142 ---
 zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-list-new.html              |    2 
 zq-erp/src/main/java/com/matrix/system/hive/action/ShoppingGoodsController.java                  |   27 
 zq-erp/src/main/java/com/matrix/system/hive/vo/OrderFlowVo.java                                  |  108 --
 zq-erp/src/main/java/com/matrix/system/hive/vo/ServiceOrderInfoVo.java                           |   69 +
 zq-erp/src/main/resources/config/xcx/config.json                                                 |    8 
 72 files changed, 1,485 insertions(+), 1,098 deletions(-)

diff --git a/zq-erp/pom.xml b/zq-erp/pom.xml
index a4dbca9..4049589 100644
--- a/zq-erp/pom.xml
+++ b/zq-erp/pom.xml
@@ -48,9 +48,9 @@
             </properties>
         </profile>
         <profile>
-            <id>mdPrd</id>
+            <id>mdprd</id>
             <properties>
-                <env>mdPrd</env>
+                <env>mdprd</env>
             </properties>
         </profile>
         <profile>
@@ -408,17 +408,15 @@
 
                     <exclude>config/dev/*</exclude>
                     <exclude>config/prd/*</exclude>
-                    <exclude>config/mdPrd/*</exclude>
+                    <exclude>config/mdprd/*</exclude>
                     <exclude>config/test/*</exclude>
                     <exclude>config/xcx/*</exclude>
                     <exclude>config/xcshop/*</exclude>
 
-                    <!--
+                    <!--  -->
                     <exclude>config/config.json</exclude>
                     <exclude>config/application.properties</exclude>
                     <exclude>config/system.properties</exclude>
--->
-
 
                     <exclude>**/*.woff</exclude>
                     <exclude>**/*.woff2</exclude>
@@ -433,6 +431,7 @@
                     <include>**/*.woff2</include>
                     <include>**/*.ttf</include>
                     <include>**/*.xls</include>
+                    <include>**/*.xml</include>
                 </includes>
             </resource>
             <resource>
@@ -501,11 +500,7 @@
         </repository>
 
 
-        <repository>
-            <id>repository.jboss.org-public</id>
-            <name>JBoss.org Maven repository</name>
-            <url>https://repository.jboss.org/nexus/content/groups/public</url>
-        </repository>
+
 
 
     </repositories>
diff --git a/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceProjVo.java b/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceProjVo.java
index c9b6e8b..6fb3473 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceProjVo.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceProjVo.java
@@ -5,6 +5,7 @@
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -25,6 +26,9 @@
 
     @ApiModelProperty(value = "套餐来源,转让,购买")
     private String source;
+
+    @ApiModelProperty(value = "划扣金额")
+    private BigDecimal price;
 
     @ApiModelProperty(value = "时长")
     private Integer timeLength;
@@ -149,4 +153,12 @@
     public void setBalance(Double balance) {
         this.balance = balance;
     }
+
+    public BigDecimal getPrice() {
+        return price;
+    }
+
+    public void setPrice(BigDecimal price) {
+        this.price = price;
+    }
 }
diff --git a/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceTcVo.java b/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceTcVo.java
index 67df2c9..fb43859 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceTcVo.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceTcVo.java
@@ -6,6 +6,7 @@
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 
@@ -36,6 +37,9 @@
 
     @ApiModelProperty(value = "若套餐为任选套餐 则判断是否无限次 Y是 N否")
     private String isInfinite;
+
+    @ApiModelProperty(value = "来源")
+    private String source;
 
     @ApiModelProperty(value = "套餐内产品")
     List<ServiceProjVo> proj;
@@ -150,4 +154,12 @@
     public void setStatus(String status) {
         this.status = status;
     }
+
+    public String getSource() {
+        return source;
+    }
+
+    public void setSource(String source) {
+        this.source = source;
+    }
 }
diff --git a/zq-erp/src/main/java/com/matrix/system/common/dao/SysCompanyDao.java b/zq-erp/src/main/java/com/matrix/system/common/dao/SysCompanyDao.java
index 69d5c4a..47e5de8 100644
--- a/zq-erp/src/main/java/com/matrix/system/common/dao/SysCompanyDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/common/dao/SysCompanyDao.java
@@ -40,4 +40,5 @@
 
 	public SysCompany selectForUpdate(Long comId);
 
+	List<SysCompany> selectAll();
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/common/dao/SysRolePwoerFnDao.java b/zq-erp/src/main/java/com/matrix/system/common/dao/SysRolePwoerFnDao.java
index 0d9a4cb..c72524b 100644
--- a/zq-erp/src/main/java/com/matrix/system/common/dao/SysRolePwoerFnDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/common/dao/SysRolePwoerFnDao.java
@@ -41,4 +41,5 @@
 
 	public SysRolePwoerFn selectForUpdate(Long rpfId);
 
+	int deleteByFns(@Param("companyId") Long comId, @Param("list") List<String> deletedFn);
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/common/init/InitWebContainer.java b/zq-erp/src/main/java/com/matrix/system/common/init/InitWebContainer.java
index 776da87..3749554 100644
--- a/zq-erp/src/main/java/com/matrix/system/common/init/InitWebContainer.java
+++ b/zq-erp/src/main/java/com/matrix/system/common/init/InitWebContainer.java
@@ -28,7 +28,7 @@
 import com.matrix.core.constance.MatrixConstance;
 
 /**
- * 
+ *
  *  初始化web容器的类 一些网站启动需要加载的数据和方法在这里配置和执行
  * @author:姜友瑶
  * @date 2016年10月18日
@@ -61,7 +61,7 @@
 	private String systemLanguage;
 
 	/**
-	 * 
+	 *
 	 *  容器启动后加载数据
 	 * @author:姜友瑶
 	 * @date 2016年10月18日
@@ -79,7 +79,7 @@
 				+ "* =========== 成功 ===========\r\n"
 				+ "* DEBUG模式:" + debug+"*\r\n"
 				+ "* 语言环境:" + Locale.getDefault().getLanguage()+"\r\n"
-			 
+
 				+ "**********************************************\r\n");
 	}
 
@@ -93,7 +93,7 @@
 
 	/**
 	 * 初始化语言环境,默认为中文
-	 * 
+	 *
 	 * @author JIANGYOUYAO
 	 * @email 935090232@qq.com
 	 * @date 2017年11月30日
diff --git a/zq-erp/src/main/java/com/matrix/system/common/service/impl/SysCompanyServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/common/service/impl/SysCompanyServiceImpl.java
index da1be03..bb496c6 100644
--- a/zq-erp/src/main/java/com/matrix/system/common/service/impl/SysCompanyServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/common/service/impl/SysCompanyServiceImpl.java
@@ -1,250 +1,300 @@
-package com.matrix.system.common.service.impl;
-
-import com.matrix.core.constance.MatrixConstance;
-import com.matrix.core.constance.SystemErrorCode;
-import com.matrix.core.exception.GlobleException;
-import com.matrix.core.pojo.PaginationVO;
-import com.matrix.core.tools.ModelUtils;
-import com.matrix.core.tools.StringUtils;
-import com.matrix.core.tools.WebUtil;
-import com.matrix.system.common.bean.*;
-import com.matrix.system.common.dao.SysCompanyDao;
-import com.matrix.system.common.dao.SysRoleDao;
-import com.matrix.system.common.dao.SysRolePwoerFnDao;
-import com.matrix.system.common.service.SysCompanyService;
-import com.matrix.system.hive.bean.SysShopInfo;
-import com.matrix.system.hive.bean.Warehouse;
-import com.matrix.system.hive.dao.SysShopInfoDao;
-import com.matrix.system.hive.dao.WarehouseDao;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-/**
- * 公司管理
- * 
- * @author JIANGYOUYAO
- * @email 935090232@qq.com
- * @date Dec 11, 2017
- */
-@Service
-public class SysCompanyServiceImpl implements SysCompanyService {
-
-	@Autowired
-	private SysCompanyDao sysCompanyDao;
-	@Autowired
-	private SysRoleDao sysRoleDao;
-	@Autowired
-	private SysRolePwoerFnDao rolePwoerFnDao;
-
-	@Autowired
-	private SysShopInfoDao shopInfoDao;
-
-
-	@Autowired
-	private InitCustomerDataDictionaryService initCustomerDataDictionaryService;
-
-
-	@Autowired
-	private InitShoppingGoodsCategoryService initShoppingGoodsCategoryService;
-
-
-	@Autowired
-	private InitRolePowerService initRolePowerService;
-
-	@Autowired
-	private InitGoodsTypeService initGoodsTypeService;
-
-	@Autowired
-	private InitShopProductCateService initShopProductCateService;
-
-	@Autowired
-	private InitBusParameterSettingService initBusParameterSettingService;
-
-
-	@Transactional
-	@Override
-	public int add(SysCompany sysCompany) {
-		SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
-		sysCompany.setCreateBy(user.getSuName());
-		sysCompany.setUpdateBy(user.getSuName());
-		int i= sysCompanyDao.insert(sysCompany);
-		SysShopInfo zbShop=	addZbShop(sysCompany);
-		initCustomerDataDictionaryService.initCustomerDataDictionary(sysCompany);
-		initShoppingGoodsCategoryService.initShoppingGoodsCategory(sysCompany,zbShop);
-		initRolePowerService.initRolePower(sysCompany);
-		initGoodsTypeService.initRolePower(sysCompany);
-		initShopProductCateService.initShopProductCate(sysCompany);
-		initBusParameterSettingService.initBusParameterSetting(sysCompany);
-		initBusParameterSettingService.initBusParameterFenxiaoSetting(sysCompany);
-
-		return i;
-
-	}
-
-
-	@Autowired
-	private WarehouseDao warehouseDao;
-	/**
-	 * 为新公司创建一个总部
-	 * @param sysCompany
-	 */
-	private SysShopInfo addZbShop(SysCompany sysCompany) {
-		SysShopInfo zbShopInfo=new SysShopInfo();
-		zbShopInfo.setShopType(SysShopInfo.SHOP_TYPE_ZONGBU);
-		zbShopInfo.setShopName(sysCompany.getComName()+"(总部)");
-		zbShopInfo.setCompanyId(sysCompany.getComId());
-		zbShopInfo.setShopTel(sysCompany.getComTel());
-		zbShopInfo.setShopShortName("总部");
-		zbShopInfo.setIsOpenNet(SysShopInfo.CLOSE_NET);
-		zbShopInfo.setShopNo(StringUtils.getRandomString(10));
-		shopInfoDao.insert(zbShopInfo);
-
-		//新增一个总部仓库
-		Warehouse warehouse=new Warehouse();
-		warehouse.setCompanyId(sysCompany.getComId());
-		warehouse.setName("总部仓库");
-		warehouse.setShopId(zbShopInfo.getId());
-		warehouse.setSort("1");
-		warehouseDao.insert(warehouse);
-		return  zbShopInfo;
-	}
-
-	@Transactional(rollbackFor = Exception.class)
-	@Override
-	public int modifyByMap(SysCompany oldSysCompany, SysCompany newSysCompany) {
-		SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
-		newSysCompany.setUpdateBy(user.getSuName());
-
-		updatePower(newSysCompany);
-		Map<String, Object> modifyMap = null;
-		try {
-			if (!ModelUtils.isModified(oldSysCompany, newSysCompany)) {
-				return MatrixConstance.DML_SUCCESSS;
-			}
-
-			modifyMap = ModelUtils.comparePojo2Map(oldSysCompany, newSysCompany);
-		} catch (Exception e) {
-			throw new GlobleException(SystemErrorCode.DATA_UPDATE_FAIL, e, newSysCompany.getComName());
-		}
-		if (modifyMap.size() > 0) {
-			modifyMap.put("comId", oldSysCompany.getComId());
-			return sysCompanyDao.updateByMap(modifyMap);
-		}
-		return MatrixConstance.DML_SUCCESSS;
-	}
-
-	/**
-	 * 更新公司员工权限
-	 * 
-	 * @author JIANGYOUYAO
-	 * @email 935090232@qq.com
-	 * @date 2017年12月5日
-	 * @param newSysCompany
-	 */
-	private void updatePower(SysCompany newSysCompany) {
-		List<String> oldFunctions = null;
-		String functions = sysCompanyDao.selectById(newSysCompany.getComId()).getComFunctions();
-		if (functions == null || functions.equals("")) {
-			oldFunctions = new ArrayList<>();
-		} else {
-			oldFunctions = StringUtils
-					.strToCollToString(sysCompanyDao.selectById(newSysCompany.getComId()).getComFunctions(), ",");
-		}
-		List<String> newFunctions = new ArrayList<>();
-		if (StringUtils.isNotBlank(newSysCompany.getComFunctions())) {
-			newFunctions = StringUtils.strToCollToString(newSysCompany.getComFunctions(), ",");
-		}
-
-		for (String old : oldFunctions) {
-			// 如果新权限中不包含这个老的功能,则要更新改企业下所有的角色权限
-			if (!newFunctions.contains(old)) {
-				SysRole role = new SysRole();
-				role.setCompanyId(newSysCompany.getComId());
-				List<SysRole> roles = sysRoleDao.selectByModel(role);
-				// 获取该公司下所有的权限信息
-				List<SysRolePwoerFn> compalyRolePwoer = new ArrayList<>();
-				for (SysRole tempRole : roles) {
-					SysRolePwoerFn r = new SysRolePwoerFn();
-					r.setRoleId(tempRole.getRoleId());
-					compalyRolePwoer.addAll(rolePwoerFnDao.selectByModel(r));
-				}
-				// 记录要删除的id
-				List<String> delRolePwoer = new ArrayList<>();
-				for (SysRolePwoerFn rolePwoer : compalyRolePwoer) {
-					// 如果有一个老权限则删除这个权限
-					if (rolePwoer.getFnId() != null && rolePwoer.getFnId().equals(old)) {
-						delRolePwoer.add(rolePwoer.getRpfId()+"");
-					}
-				}
-				// 如果获取到了就删除
-				if (!delRolePwoer.isEmpty()) {
-					rolePwoerFnDao.deleteByIds(delRolePwoer);
-				}
-			}
-		}
-	}
-
-	@Override
-	public int modifyByModel(SysCompany sysCompany) {
-
-		return sysCompanyDao.updateByModel(sysCompany);
-
-	}
-
-	@Override
-	public int remove(List<String> list) {
-
-		return sysCompanyDao.deleteByIds(list);
-
-	}
-
-	@Override
-	public int removeById(String comId) {
-
-		return sysCompanyDao.deleteById(Long.parseLong(comId));
-
-	}
-
-	@Override
-	public int removeByModel(SysCompany sysCompany) {
-
-		return sysCompanyDao.deleteByModel(sysCompany);
-
-	}
-
-	@Override
-	public List<SysCompany> findInPage(SysCompany sysCompany, PaginationVO pageVo) {
-
-		return sysCompanyDao.selectInPage(sysCompany, pageVo);
-
-	}
-
-	@Override
-	public List<SysCompany> findByModel(SysCompany sysCompany) {
-
-		return sysCompanyDao.selectByModel(sysCompany);
-
-	}
-
-	@Override
-	public int findTotal(SysCompany sysCompany) {
-
-		return sysCompanyDao.selectTotalRecord(sysCompany);
-
-	}
-
-	@Override
-	public SysCompany findById(String comId) {
-
-		return sysCompanyDao.selectById(Long.parseLong(comId));
-
-	}
-
-
-
+package com.matrix.system.common.service.impl;
+
+import cn.hutool.crypto.SecureUtil;
+import cn.hutool.json.JSONUtil;
+import com.matrix.core.constance.MatrixConstance;
+import com.matrix.core.constance.SystemErrorCode;
+import com.matrix.core.exception.GlobleException;
+import com.matrix.core.pojo.PaginationVO;
+import com.matrix.core.tools.LogUtil;
+import com.matrix.core.tools.ModelUtils;
+import com.matrix.core.tools.StringUtils;
+import com.matrix.core.tools.WebUtil;
+import com.matrix.system.app.authority.AppAuthorityManager;
+import com.matrix.system.common.authority.DefaultAuthorityManager;
+import com.matrix.system.common.bean.SysCompany;
+import com.matrix.system.common.bean.SysRole;
+import com.matrix.system.common.bean.SysRolePwoerFn;
+import com.matrix.system.common.bean.SysUsers;
+import com.matrix.system.common.constance.AppConstance;
+import com.matrix.system.common.dao.SysCompanyDao;
+import com.matrix.system.common.dao.SysRoleDao;
+import com.matrix.system.common.dao.SysRolePwoerFnDao;
+import com.matrix.system.common.init.LocalCache;
+import com.matrix.system.common.service.SysCompanyService;
+import com.matrix.system.common.service.SysUsersService;
+import com.matrix.system.hive.bean.SysShopInfo;
+import com.matrix.system.hive.bean.Warehouse;
+import com.matrix.system.hive.dao.SysShopInfoDao;
+import com.matrix.system.hive.dao.WarehouseDao;
+import com.matrix.system.hive.plugin.util.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * 公司管理
+ *
+ * @author JIANGYOUYAO
+ * @email 935090232@qq.com
+ * @date Dec 11, 2017
+ */
+@Service
+public class SysCompanyServiceImpl implements SysCompanyService {
+
+    @Autowired
+    private SysCompanyDao sysCompanyDao;
+    @Autowired
+    private SysRoleDao sysRoleDao;
+    @Autowired
+    private SysRolePwoerFnDao rolePwoerFnDao;
+
+    @Autowired
+    private SysShopInfoDao shopInfoDao;
+
+
+    @Autowired
+    private InitCustomerDataDictionaryService initCustomerDataDictionaryService;
+
+
+    @Autowired
+    private InitShoppingGoodsCategoryService initShoppingGoodsCategoryService;
+
+
+    @Autowired
+    private InitRolePowerService initRolePowerService;
+
+    @Autowired
+    private InitGoodsTypeService initGoodsTypeService;
+
+    @Autowired
+    private InitShopProductCateService initShopProductCateService;
+
+    @Autowired
+    private InitBusParameterSettingService initBusParameterSettingService;
+
+
+    @Transactional
+    @Override
+    public int add(SysCompany sysCompany) {
+        SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+        sysCompany.setCreateBy(user.getSuName());
+        sysCompany.setUpdateBy(user.getSuName());
+        int i = sysCompanyDao.insert(sysCompany);
+        SysShopInfo zbShop = addZbShop(sysCompany);
+        initCustomerDataDictionaryService.initCustomerDataDictionary(sysCompany);
+        initShoppingGoodsCategoryService.initShoppingGoodsCategory(sysCompany, zbShop);
+        initRolePowerService.initRolePower(sysCompany);
+        initGoodsTypeService.initRolePower(sysCompany);
+        initShopProductCateService.initShopProductCate(sysCompany);
+        initBusParameterSettingService.initBusParameterSetting(sysCompany);
+        initBusParameterSettingService.initBusParameterFenxiaoSetting(sysCompany);
+
+        return i;
+
+    }
+
+
+    @Autowired
+    private WarehouseDao warehouseDao;
+
+    /**
+     * 为新公司创建一个总部
+     *
+     * @param sysCompany
+     */
+    private SysShopInfo addZbShop(SysCompany sysCompany) {
+        SysShopInfo zbShopInfo = new SysShopInfo();
+        zbShopInfo.setShopType(SysShopInfo.SHOP_TYPE_ZONGBU);
+        zbShopInfo.setShopName(sysCompany.getComName() + "(总部)");
+        zbShopInfo.setCompanyId(sysCompany.getComId());
+        zbShopInfo.setShopTel(sysCompany.getComTel());
+        zbShopInfo.setShopShortName("总部");
+        zbShopInfo.setIsOpenNet(SysShopInfo.CLOSE_NET);
+        zbShopInfo.setShopNo(StringUtils.getRandomString(10));
+        shopInfoDao.insert(zbShopInfo);
+
+        //新增一个总部仓库
+        Warehouse warehouse = new Warehouse();
+        warehouse.setCompanyId(sysCompany.getComId());
+        warehouse.setName("总部仓库");
+        warehouse.setShopId(zbShopInfo.getId());
+        warehouse.setSort("1");
+        warehouseDao.insert(warehouse);
+        return zbShopInfo;
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public int modifyByMap(SysCompany oldSysCompany, SysCompany newSysCompany) {
+        SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+        newSysCompany.setUpdateBy(user.getSuName());
+
+        updatePower(newSysCompany);
+        Map<String, Object> modifyMap = null;
+        try {
+            if (!ModelUtils.isModified(oldSysCompany, newSysCompany)) {
+                return MatrixConstance.DML_SUCCESSS;
+            }
+
+            modifyMap = ModelUtils.comparePojo2Map(oldSysCompany, newSysCompany);
+        } catch (Exception e) {
+            throw new GlobleException(SystemErrorCode.DATA_UPDATE_FAIL, e, newSysCompany.getComName());
+        }
+        if (modifyMap.size() > 0) {
+            modifyMap.put("comId", oldSysCompany.getComId());
+            return sysCompanyDao.updateByMap(modifyMap);
+        }
+        return MatrixConstance.DML_SUCCESSS;
+    }
+
+    /**
+     * 更新公司员工权限
+     *
+     * @param newSysCompany
+     * @author JIANGYOUYAO
+     * @email 935090232@qq.com
+     * @date 2017年12月5日
+     */
+    private void updatePower(SysCompany newSysCompany) {
+        List<String> oldFunctions = null;
+        String functions = sysCompanyDao.selectById(newSysCompany.getComId()).getComFunctions();
+        if (functions == null || functions.equals("")) {
+            oldFunctions = new ArrayList<>();
+        } else {
+            oldFunctions = StringUtils
+                    .strToCollToString(sysCompanyDao.selectById(newSysCompany.getComId()).getComFunctions(), ",");
+        }
+        List<String> newFunctions = new ArrayList<>();
+        if (StringUtils.isNotBlank(newSysCompany.getComFunctions())) {
+            newFunctions = StringUtils.strToCollToString(newSysCompany.getComFunctions(), ",");
+        }
+
+        Collections.sort(newFunctions);
+        Collections.sort(oldFunctions);
+        if (Objects.equals(JSONUtil.toJsonStr(newFunctions), JSONUtil.toJsonStr(oldFunctions))) {
+            //没有更新的权限
+            return;
+        }
+
+        List<String> finalNewFunctions = newFunctions;
+        List<String> deletedFn = oldFunctions.stream().map(old -> {
+            if (finalNewFunctions.stream().noneMatch(newFn -> Objects.equals(newFn, old))) {
+                return old;
+            } else {
+                return "";
+            }
+        }).filter(item->StringUtils.isNotBlank(item)).collect(Collectors.toList());
+
+        if(CollectionUtils.isNotEmpty(deletedFn)){
+            rolePwoerFnDao.deleteByFns(newSysCompany.getComId(),deletedFn);
+            //有更新权限清空缓存
+            SysUsers sysUsers = new SysUsers();
+            sysUsers.setCompanyId(newSysCompany.getComId());
+            sysUsers.setSuValid(AppConstance.RECORD_VALID);
+            List<SysUsers> users = sysUsersService.findByModel(sysUsers);
+            users.forEach(user -> {
+                String userKey = SecureUtil.md5(user.getSuId() + "");
+                LocalCache.remove(DefaultAuthorityManager.USER_POWER_REDISKEY_PC + userKey);
+                LocalCache.remove(AppAuthorityManager.USER_POWER_REDISKEY_APP + userKey);
+            });
+        }
+
+
+
+/*        for (String old : oldFunctions) {
+            // 如果新权限中不包含这个老的功能,则要更新改企业下所有的角色权限
+            if (!newFunctions.contains(old)) {
+                SysRole role = new SysRole();
+                role.setCompanyId(newSysCompany.getComId());
+                List<SysRole> roles = sysRoleDao.selectByModel(role);
+                // 获取该公司下所有的权限信息
+                List<SysRolePwoerFn> compalyRolePwoer = new ArrayList<>();
+                for (SysRole tempRole : roles) {
+                    SysRolePwoerFn r = new SysRolePwoerFn();
+                    r.setRoleId(tempRole.getRoleId());
+                    compalyRolePwoer.addAll(rolePwoerFnDao.selectByModel(r));
+                }
+                // 记录要删除的id
+                List<String> delRolePwoer = new ArrayList<>();
+                for (SysRolePwoerFn rolePwoer : compalyRolePwoer) {
+                    // 如果有一个老权限则删除这个权限
+                    if (rolePwoer.getFnId() != null && rolePwoer.getFnId().equals(old)) {
+                        delRolePwoer.add(rolePwoer.getRpfId() + "");
+                    }
+                }
+                // 如果获取到了就删除
+                if (!delRolePwoer.isEmpty()) {
+                    rolePwoerFnDao.deleteByIds(delRolePwoer);
+                }
+            }
+        }*/
+
+
+
+    }
+
+    @Autowired
+    SysUsersService sysUsersService;
+
+    @Override
+    public int modifyByModel(SysCompany sysCompany) {
+
+        return sysCompanyDao.updateByModel(sysCompany);
+
+    }
+
+    @Override
+    public int remove(List<String> list) {
+
+        return sysCompanyDao.deleteByIds(list);
+
+    }
+
+    @Override
+    public int removeById(String comId) {
+
+        return sysCompanyDao.deleteById(Long.parseLong(comId));
+
+    }
+
+    @Override
+    public int removeByModel(SysCompany sysCompany) {
+
+        return sysCompanyDao.deleteByModel(sysCompany);
+
+    }
+
+    @Override
+    public List<SysCompany> findInPage(SysCompany sysCompany, PaginationVO pageVo) {
+
+        return sysCompanyDao.selectInPage(sysCompany, pageVo);
+
+    }
+
+    @Override
+    public List<SysCompany> findByModel(SysCompany sysCompany) {
+
+        return sysCompanyDao.selectByModel(sysCompany);
+
+    }
+
+    @Override
+    public int findTotal(SysCompany sysCompany) {
+
+        return sysCompanyDao.selectTotalRecord(sysCompany);
+
+    }
+
+    @Override
+    public SysCompany findById(String comId) {
+
+        return sysCompanyDao.selectById(Long.parseLong(comId));
+
+    }
+
+
 }
\ No newline at end of file
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 199d54d..37951a2 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
@@ -552,7 +552,7 @@
 
 	// 服务器文件上传配置
 	String SAVE_PATH = "/mnt/hive/static/uploadeFile/";
-	String SAVE_URL = "http://resource.hive.jyymatrix.cc/uploadeFile/";
+	String SAVE_URL = "http://filehive2.jyymatrix.cc/uploadeFile/";
 
 
 	// 积分规则编号
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/action/MoneyCardUseController.java b/zq-erp/src/main/java/com/matrix/system/hive/action/MoneyCardUseController.java
index e2c6ea7..09274b6 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/action/MoneyCardUseController.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/action/MoneyCardUseController.java
@@ -116,6 +116,10 @@
     @RequestMapping(value = "/showCardFlowList")
     public @ResponseBody
     AjaxResult showCardFlowList(MoneyCardUseFlow moneyCardUseFlow, PaginationVO pageVo) {
+        MoneyCardUse vipCard = cardUseService.findByVipId(moneyCardUseFlow.getVipId());
+        if (vipCard != null) {
+            moneyCardUseFlowDao.updateVipCardId(moneyCardUseFlow.getVipId(), vipCard.getId());
+        }
         List<MoneyCardUseFlow> dataList = moneyCardUseFlowDao.selectInPage(moneyCardUseFlow, pageVo);
         return AjaxResult.buildSuccessInstance(dataList, moneyCardUseFlowDao.selectTotalRecord(moneyCardUseFlow));
     }
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 a60adcd..68cd634 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
@@ -239,7 +239,7 @@
     public @ResponseBody
     ModelAndView printOrder(SysOrder order) throws GlobleException {
         ModelAndView mv = new ModelAndView("admin/hive/beautySalon/print-order");
-        SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
+        SysUsers user = getMe();
         String comRegisterCode = companyDao.selectById(user.getCompanyId()).getComRegisterCode();
         if (StringUtils.isNotBlank(comRegisterCode)) {
             mv.addObject("page", comRegisterCode);
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 86db596..020b110 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.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import com.matrix.core.anotations.RemoveRequestToken;
@@ -26,17 +27,16 @@
 import com.matrix.system.constance.Dictionary;
 import com.matrix.system.hive.bean.*;
 import com.matrix.system.hive.dao.*;
+import com.matrix.system.hive.dto.ServiceOrderTimeDto;
 import com.matrix.system.hive.service.*;
+import com.matrix.system.hive.vo.ServiceOrderInfoVo;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.ModelAndView;
 
 import javax.annotation.Resource;
@@ -124,9 +124,28 @@
         List<SysBeauticianState> beauticianStateList = beauticianStateDao.selectBySerIds(id);
         if (CollUtil.isNotEmpty(beauticianStateList)) {
             for (SysBeauticianState sysBeauticianState : beauticianStateList) {
+                SysProjUse item = sysBeauticianState.getProjUse();
+
+                // 若项目/套餐无效,则打印时,不显示余次
+                if (!"无效".equals(item.getStatus())) {
+                    item.setRemainCount(item.getSurplusCount());
+                } else {
+                    item.setRemainCount(null);
+                }
+
                 if (sysBeauticianState.getProjUse().getTaocanId() != null) {
                     SysProjUse sysProjUse = projUseService.findById(sysBeauticianState.getProjUse().getTaocanId());
+                    if (!"无效".equals(sysProjUse.getStatus())) {
+                        item.setRemainCount(sysProjUse.getSurplusCount());
+                    } else {
+                        item.setRemainCount(null);
+                    }
+
                     sysBeauticianState.getProjInfo().setName(sysProjUse.getProjName()+"--"+sysBeauticianState.getProjInfo().getName());
+                    if ("Y".equals(sysProjUse.getIsCourse()) && "Y".equals(sysProjUse.getIsInfinite())) {
+                        int count = projUseService.findTaocanCountForCourseAndInfinite(sysBeauticianState.getProjUse().getTaocanId(), projServices.getVipId());
+                        item.setRemainCount(count);
+                    }
                 }
             }
         }
@@ -143,6 +162,20 @@
 
         result.setStatus(AjaxResult.STATUS_SUCCESS);
         return result;
+    }
+
+    /**
+     * 根据id查询服务单简单信息
+     */
+    @RequestMapping(value = "/findServiceOrderInfoVo/{id}")
+    public @ResponseBody
+    AjaxResult findServiceOrderInfoVo(@PathVariable Long id) {
+        // 获取服务单信息
+        SysProjServices projServices = sysProjServicesService.findById(id);
+
+        ServiceOrderInfoVo serviceOrderInfoVo= BeanUtil.copyProperties(projServices,ServiceOrderInfoVo.class);
+
+        return AjaxResult.buildSuccessInstance(serviceOrderInfoVo);
     }
 
 
@@ -429,13 +462,12 @@
      */
     @RequestMapping(value = "/updateOrderTime")
     public @ResponseBody
-    AjaxResult updateOrderTime(SysProjServices serviceQuery) {
-        SysProjServices services = sysProjServicesDao.selectById(serviceQuery.getId());
-        sysProjServicesDao.updateOrderTime(serviceQuery.getConsumeTime(), serviceQuery.getId());
+    AjaxResult updateOrderTime(@RequestBody  ServiceOrderTimeDto serviceOrderTimeDto) {
+        sysProjServicesDao.updateOrderTime(serviceOrderTimeDto);
         // 更新业绩时间
         AchieveNew achieveNew = new AchieveNew();
-        achieveNew.setServiceOrderId(serviceQuery.getId());
-        achieveNew.setDatatime(serviceQuery.getConsumeTime());
+        achieveNew.setServiceOrderId(serviceOrderTimeDto.getId());
+        achieveNew.setDatatime(serviceOrderTimeDto.getConsumeTime());
         achieveNewService.modifyAchieveTime(achieveNew);
         return new AjaxResult(AjaxResult.STATUS_SUCCESS, "修改成功");
     }
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/action/ShoppingGoodsController.java b/zq-erp/src/main/java/com/matrix/system/hive/action/ShoppingGoodsController.java
index ce3fe59..106ecd6 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/action/ShoppingGoodsController.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/action/ShoppingGoodsController.java
@@ -197,6 +197,30 @@
 
     }
 
+    @RequestMapping(value = "/showAllList")
+    @ResponseBody
+    public AjaxResult showAllList(ShoppingGoods shoppingGoods, PaginationVO pageVo) {
+        QueryUtil.setQueryLimit(shoppingGoods);
+        if(StringUtils.isBlank(pageVo.getSort())){
+            pageVo.setOrder("desc");
+            pageVo.setSort("createTime");
+        }
+
+        //2表示查询总部产品
+        if (shoppingGoods.getHeadquarters()!=null && 2==shoppingGoods.getHeadquarters()) {
+            //仅查询本店产品
+            SysShopInfo zbShop = shopInfoDao.selectZbShop(getMe().getCompanyId());
+            //如果是总部自己查询自己的库存则不需加入这个调价
+            if (getMe().getShopId().equals(zbShop.getId())){
+                shoppingGoods.setHeadquarters(1);
+            }
+        }
+        shoppingGoods.setIsDel(ShoppingGoods.NORMAL);
+        List<ShoppingGoods> dataList = shoppingGoodsService.findInPage(shoppingGoods, pageVo);
+        AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, dataList, shoppingGoodsService.findTotal(shoppingGoods));
+        return result;
+    }
+
     @RequestMapping(value = "/showListShopId")
     @ResponseBody
     public AjaxResult showListShopId(ShoppingGoods shoppingGoods, PaginationVO pageVo) {
@@ -411,7 +435,7 @@
         String title = "商品资料";
         orderSheet.setSheetName(title);
         orderSheet.setTitle(title);
-        String[] header = {"商品名称", "商品编号", "售价/(本金)", "参考价/(赠送金额)", "真实销量", "状态", "是否赠送", "类型", "分类", "是否固定套餐", "产品归属"};
+        String[] header = {"商品名称", "商品编号", "售价/(本金)", "参考价/(赠送金额)", "真实销量", "状态", "是否赠送", "类型", "分类", "是否固定套餐", "产品归属","时长"};
         orderSheet.setHeaders(header);
         List<ShoppingGoods> dataList = shoppingGoodsService.findAll(shoppingGoods);
         List<List<Object>> list = new ArrayList<>();
@@ -429,6 +453,7 @@
                 temp.add(item.getCateName());
                 temp.add(item.getIsCourse());
                 temp.add(item.getHeadquarters() == 1 ? "总部产品" : "本店产品");
+                temp.add(item.getTimeLength());
                 list.add(temp);
             }
         }
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderFlow.java b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderFlow.java
index 8c8cc65..41b23ab 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderFlow.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderFlow.java
@@ -1,7 +1,9 @@
 package com.matrix.system.hive.bean;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.matrix.core.anotations.Extend;
 import com.matrix.core.tools.DateUtil;
+import lombok.Data;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
@@ -11,6 +13,7 @@
  * @author wzy
  * @date 2021-01-07
  **/
+@Data
 public class SysOrderFlow implements Serializable {
     private static final long serialVersionUID = 7519131902836023680L;
 
@@ -53,6 +56,11 @@
     private Long vipId;
 
     private Long cardId;
+    /**
+     * 扩展字段-支付卡名称
+     */
+    @Extend
+    private String cardName;
 
     private String isGift;
 
@@ -62,139 +70,5 @@
 
     private Long companyId;
 
-    public String getOrderNo() {
-        return orderNo;
-    }
 
-    public void setOrderNo(String orderNo) {
-        this.orderNo = orderNo;
-    }
-
-    public Long getCardId() {
-        return cardId;
-    }
-
-    public void setCardId(Long cardId) {
-        this.cardId = cardId;
-    }
-
-    public String getIsGift() {
-        return isGift;
-    }
-
-    public void setIsGift(String isGift) {
-        this.isGift = isGift;
-    }
-
-    public String getCreateBy() {
-        return createBy;
-    }
-
-    public void setCreateBy(String createBy) {
-        this.createBy = createBy;
-    }
-
-    public Date getCreateTime() {
-        return createTime;
-    }
-
-    public void setCreateTime(Date createTime) {
-        this.createTime = createTime;
-    }
-
-    public String getUpdateBy() {
-        return updateBy;
-    }
-
-    public void setUpdateBy(String updateBy) {
-        this.updateBy = updateBy;
-    }
-
-    public Date getUpdateTime() {
-        return updateTime;
-    }
-
-    public void setUpdateTime(Date updateTime) {
-        this.updateTime = updateTime;
-    }
-
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
-    public String getFlowNo() {
-        return flowNo;
-    }
-
-    public void setFlowNo(String flowNo) {
-        this.flowNo = flowNo;
-    }
-
-    public Long getOrderId() {
-        return orderId;
-    }
-
-    public void setOrderId(Long orderId) {
-        this.orderId = orderId;
-    }
-
-    public String getFlowContent() {
-        return flowContent;
-    }
-
-    public void setFlowContent(String flowContent) {
-        this.flowContent = flowContent;
-    }
-
-    public String getFlowType() {
-        return flowType;
-    }
-
-    public void setFlowType(String flowType) {
-        this.flowType = flowType;
-    }
-
-    public BigDecimal getAmount() {
-        return amount;
-    }
-
-    public void setAmount(BigDecimal amount) {
-        this.amount = amount;
-    }
-
-    public String getPayMethod() {
-        return payMethod;
-    }
-
-    public void setPayMethod(String payMethod) {
-        this.payMethod = payMethod;
-    }
-
-    public Long getVipId() {
-        return vipId;
-    }
-
-    public void setVipId(Long vipId) {
-        this.vipId = vipId;
-    }
-
-    public Long getShopId() {
-        return shopId;
-    }
-
-    public void setShopId(Long shopId) {
-        this.shopId = shopId;
-    }
-
-    public Long getCompanyId() {
-        return companyId;
-    }
-
-    public void setCompanyId(Long companyId) {
-        this.companyId = companyId;
-    }
 }
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysProjUse.java b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysProjUse.java
index 94b8b15..a019374 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysProjUse.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysProjUse.java
@@ -143,6 +143,18 @@
     @Extend
     private String updateRemark;
 
+    /**
+     * 套餐/项目剩余次数
+     */
+    private Integer remainCount;
+
+    public Integer getRemainCount() {
+        return remainCount;
+    }
+
+    public void setRemainCount(Integer remainCount) {
+        this.remainCount = remainCount;
+    }
 
     public Long getOrderId() {
         return orderId;
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dao/MoneyCardUseFlowDao.java b/zq-erp/src/main/java/com/matrix/system/hive/dao/MoneyCardUseFlowDao.java
index 597762f..7a26149 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/dao/MoneyCardUseFlowDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/dao/MoneyCardUseFlowDao.java
@@ -33,5 +33,7 @@
 	public int  selectTotalRecord(@Param("record") MoneyCardUseFlow moneyCardUseFlow);
 	
 	public MoneyCardUseFlow  selectById(Long id);
+
+	int updateVipCardId(@Param("vipId") Long vipId, @Param("cardId") Long cardId);
 	
 }
\ 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 4266fb8..588612c 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
@@ -4,6 +4,7 @@
 import com.matrix.system.app.dto.ServiceOrderListDto;
 import com.matrix.system.app.vo.ServiceOrderListVo;
 import com.matrix.system.hive.bean.SysProjServices;
+import com.matrix.system.hive.dto.ServiceOrderTimeDto;
 import com.matrix.system.shopXcx.api.dto.ErpServiceOrderListDto;
 import com.matrix.system.shopXcx.api.vo.ErpServiceOrderListVo;
 import org.apache.ibatis.annotations.Param;
@@ -36,7 +37,7 @@
 
 	public SysProjServices  selectById(Long id);
 
-	public void updateOrderTime(@Param("consumeTime") Date createTime, @Param("id") Long id);
+	public void updateOrderTime(@Param("serviceOrderTimeDto") ServiceOrderTimeDto serviceOrderTimeDto);
 
 	List<ServiceOrderListVo> selectApiServiceOrderListInPage(@Param("record") ServiceOrderListDto serviceOrderListDto, @Param("pageVo") PaginationVO pageVo);
 
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjUseDao.java b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjUseDao.java
index 6eac36c..cd19d3d 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjUseDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjUseDao.java
@@ -134,4 +134,6 @@
 	Integer selectProjUseFlowTotal(@Param("record") SysProjUseFlow projUseFlow);
 
 	List<SysProjUse> selectTaoCanListWithProj(@Param("record") SysProjUse sysProjUse);
+
+	int selectTaocanCountForCourseAndInfinite(@Param("taocanId") Long taocanId, @Param("vipId") Long vipId);
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dto/ServiceOrderTimeDto.java b/zq-erp/src/main/java/com/matrix/system/hive/dto/ServiceOrderTimeDto.java
new file mode 100644
index 0000000..bedaf81
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/hive/dto/ServiceOrderTimeDto.java
@@ -0,0 +1,34 @@
+package com.matrix.system.hive.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.matrix.core.tools.DateUtil;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class ServiceOrderTimeDto {
+
+    /**
+     * 服务单id
+     */
+    private Long id;
+    /**
+     * 预约时间
+     */
+    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
+    private Date yyTime;
+
+    /**
+     * 订单创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+    private Date createTime;
+    /**
+     * 订单划扣时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+    private Date consumeTime;
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/SysProjUseService.java b/zq-erp/src/main/java/com/matrix/system/hive/service/SysProjUseService.java
index 0bf893a..ed21be0 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/SysProjUseService.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/SysProjUseService.java
@@ -143,4 +143,6 @@
 	public List<SysProjUse> selectTaocanProjUse(Long id, String status);
 
 	public List<SysProjUse> findTaocaoProjUseWithProj(SysProjUse sysProjUse);
+
+	int findTaocanCountForCourseAndInfinite(Long taocanId, Long vipId);
 }
\ No newline at end of file
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 f9bc208..879b5ba 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
@@ -1520,6 +1520,7 @@
         moneyCardUseFlow.setCreateTime(new Date());
         moneyCardUseFlow.setOperationId(user.getSuId());
         moneyCardUseFlow.setBalance(cardUser.getGiftMoney() + cardUser.getRealMoney());
+        moneyCardUseFlow.setCarUseId(cardUser.getId());
         moneyCardUseFlowDao.insert(moneyCardUseFlow);
 
         order.setFlows(czVo.getFlows());
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjUseServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjUseServiceImpl.java
index 2764267..b30f76c 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjUseServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjUseServiceImpl.java
@@ -608,4 +608,9 @@
     public List<SysProjUse> findTaocaoProjUseWithProj(SysProjUse sysProjUse) {
         return sysProjUseDao.selectTaoCanListWithProj(sysProjUse);
     }
+
+    @Override
+    public int findTaocanCountForCourseAndInfinite(Long taocanId, Long vipId) {
+        return sysProjUseDao.selectTaocanCountForCourseAndInfinite(taocanId, vipId);
+    }
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/statistics/OrderFlowAction.java b/zq-erp/src/main/java/com/matrix/system/hive/statistics/OrderFlowAction.java
index a3ad197..c77023d 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/statistics/OrderFlowAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/statistics/OrderFlowAction.java
@@ -107,7 +107,7 @@
         orderSheet.setSheetName("交易流水");
         orderSheet.setTitle("交易流水");
         String[] header = new String[]{"订单编号", "交易内容", "交易时间", "交易类型", "交易金额", "会员姓名",
-                "支付方式", "支付流水号", "操作人",  "门店名称"};
+                "支付方式","储值卡名称", "支付流水号", "操作人",  "门店名称"};
         orderSheet.setHeaders(header);
         List<List<Object>> body = new ArrayList<>();
         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
@@ -120,6 +120,7 @@
                 bodyItem.add(flowVo.getAmount());
                 bodyItem.add(flowVo.getVipName());
                 bodyItem.add(flowVo.getPayMethod());
+                bodyItem.add(flowVo.getCardName());
                 bodyItem.add(flowVo.getFlowNo());
                 bodyItem.add(flowVo.getStaffName());
                 bodyItem.add(flowVo.getShopName());
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/statistics/OrderStatisticsAction.java b/zq-erp/src/main/java/com/matrix/system/hive/statistics/OrderStatisticsAction.java
index 317206f..5439672 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/statistics/OrderStatisticsAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/statistics/OrderStatisticsAction.java
@@ -53,8 +53,8 @@
     public void exportShowList(@RequestParam Map<String, Object> param, HttpServletResponse response) throws Exception {
         SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
         String title = "产品销售明细统计";
-        String[] header = {"门店", "销售日期", "订单号", "商品名称", "分类", "客户名", "购买数量", "单价", "健康顾问", "支付方式", "状态"};
-        String[] column = {"SHOP_NAME", "pay_time", "ORDER_NO", "goodsName", "cateName", "VIP_NAME", "COUNT", "ZK_PRICE", "su_name", "pay_method", "status"};
+        String[] header = {"门店", "销售日期", "订单号", "商品名称", "分类", "客户名", "购买数量", "单价","小计", "健康顾问", "支付方式", "状态"};
+        String[] column = {"SHOP_NAME", "pay_time", "ORDER_NO", "goodsName", "cateName", "VIP_NAME", "COUNT", "ZK_PRICE", "total","su_name", "pay_method", "statu"};
 
         if(!DataAuthUtil.hasAllShopAuth()){
             param.put("shopId", sysUsers.getShopId());
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/statistics/ProjUseStatisticsAction.java b/zq-erp/src/main/java/com/matrix/system/hive/statistics/ProjUseStatisticsAction.java
index 955fba1..75a215f 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/statistics/ProjUseStatisticsAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/statistics/ProjUseStatisticsAction.java
@@ -46,8 +46,8 @@
     public void exportShowList( @RequestParam Map<String , Object> param, HttpServletResponse response) throws Exception {
         SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
         String title = "项目剩余次数明细";
-        String[] header = {"客户名", "服务名称",  "到期日期", "剩余次数", "单价", "项目类型", "套餐类型", "是否使用完成", "备注", "来源", "订单号"};
-        String[] column = {"VIP_NAME", "PROJ_NAME", "FAIL_TIME", "SURPLUS_COUNT", "PRICE", "TYPE_NAME", "type", "IS_OVER", "remark", "SOURCE", "ORDER_NO"};
+        String[] header = {"客户名", "客户所属门店", "服务名称",  "到期日期", "剩余次数", "单价", "项目类型", "套餐类型", "是否使用完成", "备注", "来源", "订单号"};
+        String[] column = {"VIP_NAME", "SHOP_NAME", "PROJ_NAME", "FAIL_TIME", "SURPLUS_COUNT", "PRICE", "TYPE_NAME", "type", "IS_OVER", "remark", "SOURCE", "ORDER_NO"};
 
         if(!DataAuthUtil.hasAllShopAuth()){
             param.put("shopId", sysUsers.getShopId());
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/vo/OrderFlowVo.java b/zq-erp/src/main/java/com/matrix/system/hive/vo/OrderFlowVo.java
index 78ce807..2a0c4f4 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/vo/OrderFlowVo.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/vo/OrderFlowVo.java
@@ -2,18 +2,18 @@
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.matrix.core.tools.DateUtil;
-import com.matrix.system.app.vo.OrderDetailItemVo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import java.math.BigDecimal;
 import java.util.Date;
-import java.util.List;
 
 /**
  * @author jyy
  * @date 2021-01-27
  **/
+@Data
 @ApiModel(value = "OrderFlowVo", description = "订单流水返回参数类")
 public class OrderFlowVo {
 
@@ -26,10 +26,10 @@
     @ApiModelProperty(value = "订单号")
     private String orderNo;
 
-    @ApiModelProperty(value ="交易类型")
+    @ApiModelProperty(value = "交易类型")
     private String flowType;
 
-    @ApiModelProperty(value ="支付方式")
+    @ApiModelProperty(value = "支付方式")
     private String payMethod;
 
     @ApiModelProperty(value = "会员姓名")
@@ -50,103 +50,11 @@
     @ApiModelProperty(value = "门店名称")
     private String shopName;
 
+    @ApiModelProperty(value = "支付卡名称")
+    private String cardName;
+
     @JsonFormat(pattern = DateUtil.DATE_FORMAT_SS, timezone = "GMT+8")
     @ApiModelProperty(value = "创建时间")
     private Date createTime;
-
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
-    public String getOrderId() {
-        return orderId;
-    }
-
-    public void setOrderId(String orderId) {
-        this.orderId = orderId;
-    }
-
-    public String getOrderNo() {
-        return orderNo;
-    }
-
-    public void setOrderNo(String orderNo) {
-        this.orderNo = orderNo;
-    }
-
-    public String getFlowType() {
-        return flowType;
-    }
-
-    public void setFlowType(String flowType) {
-        this.flowType = flowType;
-    }
-
-    public String getPayMethod() {
-        return payMethod;
-    }
-
-    public void setPayMethod(String payMethod) {
-        this.payMethod = payMethod;
-    }
-
-    public String getVipName() {
-        return vipName;
-    }
-
-    public void setVipName(String vipName) {
-        this.vipName = vipName;
-    }
-
-    public String getFlowContent() {
-        return flowContent;
-    }
-
-    public void setFlowContent(String flowContent) {
-        this.flowContent = flowContent;
-    }
-
-    public BigDecimal getAmount() {
-        return amount;
-    }
-
-    public void setAmount(BigDecimal amount) {
-        this.amount = amount;
-    }
-
-    public String getStaffName() {
-        return staffName;
-    }
-
-    public void setStaffName(String staffName) {
-        this.staffName = staffName;
-    }
-
-    public String getFlowNo() {
-        return flowNo;
-    }
-
-    public void setFlowNo(String flowNo) {
-        this.flowNo = flowNo;
-    }
-
-    public String getShopName() {
-        return shopName;
-    }
-
-    public void setShopName(String shopName) {
-        this.shopName = shopName;
-    }
-
-    public Date getCreateTime() {
-        return createTime;
-    }
-
-    public void setCreateTime(Date createTime) {
-        this.createTime = createTime;
-    }
 }
+
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/vo/ServiceOrderInfoVo.java b/zq-erp/src/main/java/com/matrix/system/hive/vo/ServiceOrderInfoVo.java
new file mode 100644
index 0000000..a43e901
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/hive/vo/ServiceOrderInfoVo.java
@@ -0,0 +1,69 @@
+package com.matrix.system.hive.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.matrix.core.tools.DateUtil;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 简单服务单信息展示对象不含明细
+ */
+@Data
+public class ServiceOrderInfoVo {
+
+    /**
+     * id
+     */
+    private Long id;
+
+    /**
+     * 编号
+     */
+    private String serviceNo;
+
+    /**
+     * 服务单金额
+     */
+    private Double money;
+    /**
+     * 预约时间
+     */
+    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
+    private Date yyTime;
+
+    /**
+     * 订单创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+    private Date createTime;
+    /**
+     * 订单划扣时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+    private Date consumeTime;
+
+    /**
+     * 开始时间
+     */
+    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
+    private Date startTime;
+    /**
+     * 结束时间
+     */
+    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
+    private Date endTime;
+    /**
+     * 超时时间
+     */
+    private String isOverTime;
+
+    /**
+     * 服务状态 0.待预约 1.预约失败,2预约成功待处理,3需配料,4配料中,5配料完成,6,服务中,7服务完成
+     */
+    private String state;
+
+
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/oa/actions/OaFixedAssetsAction.java b/zq-erp/src/main/java/com/matrix/system/oa/actions/OaFixedAssetsAction.java
index befc7c8..546bb82 100644
--- a/zq-erp/src/main/java/com/matrix/system/oa/actions/OaFixedAssetsAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/oa/actions/OaFixedAssetsAction.java
@@ -8,134 +8,193 @@
 import com.matrix.core.exception.GlobleException;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.pojo.PaginationVO;
+import com.matrix.core.tools.DateUtil;
 import com.matrix.core.tools.ModelUtils;
 import com.matrix.core.tools.StringUtils;
 import com.matrix.core.tools.WebUtil;
+import com.matrix.core.tools.excl.ExcelSheetPO;
+import com.matrix.core.tools.excl.ExcelUtil;
+import com.matrix.core.tools.excl.ExcelVersion;
 import com.matrix.system.common.bean.SysUsers;
+import com.matrix.system.common.tools.ResponseHeadUtil;
 import com.matrix.system.oa.bean.OaFixedAssets;
 import com.matrix.system.oa.dao.OaFixedAssetsDao;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.URLEncoder;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
 /**
+ * @author
  * @description 固定资产
- * @author 
  * @date 2019-12-13 07:19
  */
 @Controller
 @RequestMapping(value = "admin/oaFixedAssets")
 public class OaFixedAssetsAction {
 
-	@Autowired
-	private OaFixedAssetsDao oaFixedAssetsDao;
-	
-	//记录编辑前的值Before_Edit_Value
-	public static final String BEV="OaFixedAssets_BEV";
-	
-	
-	/**
-	 * 列表显示
-	 */
-	@RequestMapping(value =  "/showList")
-	public @ResponseBody AjaxResult showList(OaFixedAssets oaFixedAssets, PaginationVO pageVo) {
-		SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
-		oaFixedAssets.setCompanyId(user.getCompanyId());
-		List<OaFixedAssets> dataList = oaFixedAssetsDao.selectInPage(oaFixedAssets, pageVo);
-		AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, dataList,
-				oaFixedAssetsDao.selectTotalRecord(oaFixedAssets));
-		return result;
-	}
-   	
-	/**
-	 * 新增
-	 */   
-	@RemoveRequestToken	
-   	@RequestMapping(value =  "/addOaFixedAssets")
-	public @ResponseBody AjaxResult addOaFixedAssets(OaFixedAssets oaFixedAssets) {
-	    SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
-		oaFixedAssets.setCreateBy(user.getSuName());
-		oaFixedAssets.setUpdateBy(user.getSuName());
-		oaFixedAssets.setCompanyId(user.getCompanyId());
-	 	int i=oaFixedAssetsDao.insert(oaFixedAssets);
-	 	if(i > 0){
-	 		return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.ADD_SUCCES, "固定资产");
-	 	}else {
-			throw new GlobleException(SystemErrorCode.DATA_ADD_FAIL);
-		}
-	}
-	
-	
-	
-	
-	
-	/**
-	 * 修改
-	 */   
-	@RemoveRequestToken	
-   	@RequestMapping(value =  "/modifyOaFixedAssets")
-	public @ResponseBody AjaxResult modifyOaFixedAssets(OaFixedAssets newOaFixedAssets) {
-	   	OaFixedAssets oldOaFixedAssets = WebUtil.getSessionAttribute(BEV);
-		int i = 0;
-		Map<String, Object> modifyMap = null;
-		try {
-			if (!ModelUtils.isModified(oldOaFixedAssets, newOaFixedAssets)) {
-				i = MatrixConstance.DML_SUCCESSS;
-			}
-			modifyMap = ModelUtils.comparePojo2Map(oldOaFixedAssets, newOaFixedAssets);
-		} catch (Exception e) {
-			throw new GlobleException(SystemErrorCode.DATA_UPDATE_FAIL, e, newOaFixedAssets);
-		}
-		if (modifyMap.size() > 0) {
-			modifyMap.put("id", oldOaFixedAssets.getId());
-			oaFixedAssetsDao.updateByMap(modifyMap);
-		}
-		i = MatrixConstance.DML_SUCCESSS;
-		WebUtil.removeSessionAttribute(BEV);
-		if (i > 0) {
-			return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.UPDATE_SUCCES, "固定资产");
-		} else {
-			throw new GlobleException(SystemErrorCode.DATA_UPDATE_FAIL);
-		}
-	}
-	
-	
-	
-	
-   	/**
-	 * 进入修改界面
-	 */   
-	@SaveRequestToken
-   	@RequestMapping(value =  "/editForm")
-	public ModelAndView editForm(String id) {
-		OaFixedAssets oaFixedAssets = new OaFixedAssets();
-		ModelAndView modelAndView = new ModelAndView("admin/oa/assets/fixeAssets-form");
-		if (id != null) {
-			oaFixedAssets = oaFixedAssetsDao.selectById(id);
-			WebUtil.setSessionAttribute(BEV, oaFixedAssets);
-		}
-		modelAndView.addObject("obj",oaFixedAssets);
-		return modelAndView;
-	}
-   	
-   	
-   	/**
-	 * 删除
-	 */  
- 	@RequestMapping(value = "/del")
-	public @ResponseBody AjaxResult del(String keys) {
-		List<String> ids = StringUtils.strToCollToString(keys, ",");
-		int i =  oaFixedAssetsDao.deleteByIds(ids);
-		if (i > 0) {
-			return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.DELETE_SUCCES, i);
-		} else {
-			throw new GlobleException(SystemErrorCode.DATA_DELETE_FAIL);
-		}
-	}
-  
+    @Autowired
+    private OaFixedAssetsDao oaFixedAssetsDao;
+
+    //记录编辑前的值Before_Edit_Value
+    public static final String BEV = "OaFixedAssets_BEV";
+
+
+    /**
+     * 列表显示
+     */
+    @RequestMapping(value = "/showList")
+    public @ResponseBody
+    AjaxResult showList(OaFixedAssets oaFixedAssets, PaginationVO pageVo) {
+        SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+        oaFixedAssets.setCompanyId(user.getCompanyId());
+        List<OaFixedAssets> dataList = oaFixedAssetsDao.selectInPage(oaFixedAssets, pageVo);
+        AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, dataList,
+                oaFixedAssetsDao.selectTotalRecord(oaFixedAssets));
+        return result;
+    }
+
+    /**
+     * 新增
+     */
+    @RemoveRequestToken
+    @RequestMapping(value = "/addOaFixedAssets")
+    public @ResponseBody
+    AjaxResult addOaFixedAssets(OaFixedAssets oaFixedAssets) {
+        SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+        oaFixedAssets.setCreateBy(user.getSuName());
+        oaFixedAssets.setUpdateBy(user.getSuName());
+        oaFixedAssets.setCompanyId(user.getCompanyId());
+        int i = oaFixedAssetsDao.insert(oaFixedAssets);
+        if (i > 0) {
+            return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.ADD_SUCCES, "固定资产");
+        } else {
+            throw new GlobleException(SystemErrorCode.DATA_ADD_FAIL);
+        }
+    }
+
+
+    /**
+     * 修改
+     */
+    @RemoveRequestToken
+    @RequestMapping(value = "/modifyOaFixedAssets")
+    public @ResponseBody
+    AjaxResult modifyOaFixedAssets(OaFixedAssets newOaFixedAssets) {
+        OaFixedAssets oldOaFixedAssets = WebUtil.getSessionAttribute(BEV);
+        int i = 0;
+        Map<String, Object> modifyMap = null;
+        try {
+            if (!ModelUtils.isModified(oldOaFixedAssets, newOaFixedAssets)) {
+                i = MatrixConstance.DML_SUCCESSS;
+            }
+            modifyMap = ModelUtils.comparePojo2Map(oldOaFixedAssets, newOaFixedAssets);
+        } catch (Exception e) {
+            throw new GlobleException(SystemErrorCode.DATA_UPDATE_FAIL, e, newOaFixedAssets);
+        }
+        if (modifyMap.size() > 0) {
+            modifyMap.put("id", oldOaFixedAssets.getId());
+            oaFixedAssetsDao.updateByMap(modifyMap);
+        }
+        i = MatrixConstance.DML_SUCCESSS;
+        WebUtil.removeSessionAttribute(BEV);
+        if (i > 0) {
+            return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.UPDATE_SUCCES, "固定资产");
+        } else {
+            throw new GlobleException(SystemErrorCode.DATA_UPDATE_FAIL);
+        }
+    }
+
+
+    /**
+     * 进入修改界面
+     */
+    @SaveRequestToken
+    @RequestMapping(value = "/editForm")
+    public ModelAndView editForm(String id) {
+        OaFixedAssets oaFixedAssets = new OaFixedAssets();
+        ModelAndView modelAndView = new ModelAndView("admin/oa/assets/fixeAssets-form");
+        if (id != null) {
+            oaFixedAssets = oaFixedAssetsDao.selectById(id);
+            WebUtil.setSessionAttribute(BEV, oaFixedAssets);
+        }
+        modelAndView.addObject("obj", oaFixedAssets);
+        return modelAndView;
+    }
+
+
+    /**
+     * 删除
+     */
+    @RequestMapping(value = "/del")
+    public @ResponseBody
+    AjaxResult del(String keys) {
+        List<String> ids = StringUtils.strToCollToString(keys, ",");
+        int i = oaFixedAssetsDao.deleteByIds(ids);
+        if (i > 0) {
+            return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.DELETE_SUCCES, i);
+        } else {
+            throw new GlobleException(SystemErrorCode.DATA_DELETE_FAIL);
+        }
+    }
+
+    /**
+     * 总部导出服务单导出,不限门店
+     */
+    @RequestMapping(value = "/exportExcel")
+    public void erpExportExcel(ModelMap model, HttpServletRequest request, HttpServletResponse response, OaFixedAssets oaFixedAssets) throws Exception {
+
+
+        doExportServiceOrder(response, oaFixedAssets);
+    }
+
+
+    private void doExportServiceOrder(HttpServletResponse response, OaFixedAssets oaFixedAssets) throws IOException {
+
+        List<ExcelSheetPO> res = new ArrayList<>();
+        ExcelSheetPO orderSheet = new ExcelSheetPO();
+        String title = "固定资产明细";
+        orderSheet.setSheetName(title);
+        orderSheet.setTitle(title);
+        String[] header = {"资产类型", "资产编号", "资产型号", "所在部门", "成本价", "数量", "往来单位", "使用人"};
+        orderSheet.setHeaders(header);
+
+        List<OaFixedAssets> dataList = oaFixedAssetsDao.selectByModel(oaFixedAssets);
+        List<List<Object>> list = new ArrayList<>();
+        if (dataList.size() > 0) {
+            for (OaFixedAssets item : dataList) {
+                List<Object> temp = new ArrayList<>();
+                temp.add(item.getAssetsType());
+                temp.add(item.getName());
+                temp.add(item.getNumber());
+                temp.add(item.getModel());
+                temp.add(item.getDepartment());
+                temp.add(item.getPrice());
+                temp.add(item.getCount());
+                temp.add(item.getSupplier());
+                temp.add(item.getUser());
+                list.add(temp);
+            }
+        }
+        orderSheet.setDataList(list);
+        res.add(orderSheet);
+        response = ResponseHeadUtil.setExcelHead(response);
+        response.setHeader("Content-Disposition",
+                "attachment;filename=" + URLEncoder.encode(title + DateUtil.getTimeMark() + ".xlsx".trim(), "UTF-8"));
+        OutputStream os = response.getOutputStream();
+        ExcelUtil.createWorkbookAtOutStream(ExcelVersion.V2007, res, os, true);
+    }
+
+
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WXShopOrderServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WXShopOrderServiceImpl.java
index 7982cf2..dee24d6 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WXShopOrderServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WXShopOrderServiceImpl.java
@@ -152,12 +152,23 @@
         shopOrder.setOrderType(ShopOrder.ORDER_TYPE_GOODS);
 
         List<ShopOrderDetails> details = new ArrayList<>();
+        // 是否包含实物商品
+        boolean hasRealGoods = false;
+
         Integer orderCount = 0;
         for (OrderItemDto orderItemDto : shopOrderDto.getOrderItemList()) {
             ShopOrderDetails shopOrderDetails = new ShopOrderDetails();
             shopOrderDetails.setCreateBy(AppConstance.SYSTEM_USER);
             shopOrderDetails.setUpdateBy(AppConstance.SYSTEM_USER);
             shopOrderDetails.setpId(orderItemDto.getProductId());
+
+            if (!hasRealGoods) {
+                ShopProduct shopProduct = shopProductDao.selectById(orderItemDto.getProductId());
+                if (shopProduct.getIsUnrealProduct() == 2) {
+                    hasRealGoods = true;
+                }
+            }
+
             shopOrderDetails.setsId(orderItemDto.getSkuId());
             shopOrderDetails.setCount(orderItemDto.getCount());
             if(ShopOrderDetails.PAYTYPE_MICRO==orderItemDto.getPayType()){
@@ -198,6 +209,10 @@
         shopOrder.setOrderType(ShopOrder.ORDER_TYPE_GOODS);
         //购买方式
         shopOrder.setShippingMethod(shopOrderDto.getDeliverySelect());
+        // 客户选择的物流配送,且没有实物产品(全是虚拟产品), 则直接门店自提,无需填写配送单
+        if (ShopOrder.SHIPPING_METHOD_WL == shopOrderDto.getDeliverySelect() && !hasRealGoods) {
+            shopOrder.setShippingMethod(ShopOrder.SHIPPING_METHOD_MDZT);
+        }
         //生成订单号
         shopOrder.setOrderNo(WxUtils.getOrderNum());
         //设置支付状态
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopProduct.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopProduct.java
index 440cac1..73ef54d 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopProduct.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopProduct.java
@@ -272,6 +272,9 @@
 
 	private Long companyId;
 
-
+	/**
+	 * 是否虚拟产品 1/是 2/否
+	 */
+	private Integer isUnrealProduct;
 
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/resources/config/dev/config.json b/zq-erp/src/main/resources/config/dev/config.json
index 1b5f059..09db45c 100644
--- a/zq-erp/src/main/resources/config/dev/config.json
+++ b/zq-erp/src/main/resources/config/dev/config.json
@@ -8,7 +8,7 @@
     "imageCompressEnable": true, /* 是否压缩图片,默认是true */
     "imageCompressBorder": 1600, /* 图片压缩最长边限制 */
     "imageInsertAlign": "none", /* 插入的图片浮动方式 */
-    "imageUrlPrefix": "http://resource.hive.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
+    "imageUrlPrefix": "http://filehive2.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
     "imagePathFormat": "/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
                                 /* {filename} 会替换成原文件名,配置这项需要注意中文乱码问题 */
                                 /* {rand:6} 会替换成随机数,后面的数字是随机数的位数 */
@@ -28,13 +28,13 @@
     "scrawlFieldName": "upfile", /* 提交的图片表单名称 */
     "scrawlPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
     "scrawlMaxSize": 2048000, /* 上传大小限制,单位B */
-    "scrawlUrlPrefix": "http://resource.hive.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
+    "scrawlUrlPrefix": "http://filehive2.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
     "scrawlInsertAlign": "none",
 
     /* 截图工具上传 */
     "snapscreenActionName": "uploadimage", /* 执行上传截图的action名称 */
     "snapscreenPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
-    "snapscreenUrlPrefix": "http://resource.hive.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
+    "snapscreenUrlPrefix": "http://filehive2.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
     "snapscreenInsertAlign": "none", /* 插入的图片浮动方式 */
 
     /* 抓取远程图片配置 */
@@ -42,7 +42,7 @@
     "catcherActionName": "catchimage", /* 执行抓取远程图片的action名称 */
     "catcherFieldName": "source", /* 提交的图片列表表单名称 */
     "catcherPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
-    "catcherUrlPrefix": "http://resource.hive.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
+    "catcherUrlPrefix": "http://filehive2.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
     "catcherMaxSize": 2048000, /* 上传大小限制,单位B */
     "catcherAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 抓取图片格式显示 */
 
diff --git a/zq-erp/src/main/resources/config/lhx/config.json b/zq-erp/src/main/resources/config/lhx/config.json
index 1b5f059..09db45c 100644
--- a/zq-erp/src/main/resources/config/lhx/config.json
+++ b/zq-erp/src/main/resources/config/lhx/config.json
@@ -8,7 +8,7 @@
     "imageCompressEnable": true, /* 是否压缩图片,默认是true */
     "imageCompressBorder": 1600, /* 图片压缩最长边限制 */
     "imageInsertAlign": "none", /* 插入的图片浮动方式 */
-    "imageUrlPrefix": "http://resource.hive.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
+    "imageUrlPrefix": "http://filehive2.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
     "imagePathFormat": "/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
                                 /* {filename} 会替换成原文件名,配置这项需要注意中文乱码问题 */
                                 /* {rand:6} 会替换成随机数,后面的数字是随机数的位数 */
@@ -28,13 +28,13 @@
     "scrawlFieldName": "upfile", /* 提交的图片表单名称 */
     "scrawlPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
     "scrawlMaxSize": 2048000, /* 上传大小限制,单位B */
-    "scrawlUrlPrefix": "http://resource.hive.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
+    "scrawlUrlPrefix": "http://filehive2.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
     "scrawlInsertAlign": "none",
 
     /* 截图工具上传 */
     "snapscreenActionName": "uploadimage", /* 执行上传截图的action名称 */
     "snapscreenPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
-    "snapscreenUrlPrefix": "http://resource.hive.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
+    "snapscreenUrlPrefix": "http://filehive2.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
     "snapscreenInsertAlign": "none", /* 插入的图片浮动方式 */
 
     /* 抓取远程图片配置 */
@@ -42,7 +42,7 @@
     "catcherActionName": "catchimage", /* 执行抓取远程图片的action名称 */
     "catcherFieldName": "source", /* 提交的图片列表表单名称 */
     "catcherPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
-    "catcherUrlPrefix": "http://resource.hive.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
+    "catcherUrlPrefix": "http://filehive2.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
     "catcherMaxSize": 2048000, /* 上传大小限制,单位B */
     "catcherAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 抓取图片格式显示 */
 
diff --git a/zq-erp/src/main/resources/config/mdprd/application.properties b/zq-erp/src/main/resources/config/mdprd/application.properties
index 223e340..6b791af 100644
--- a/zq-erp/src/main/resources/config/mdprd/application.properties
+++ b/zq-erp/src/main/resources/config/mdprd/application.properties
@@ -68,4 +68,5 @@
 
 #默认头像
 default.vip.photo.woman=https://filehive2.jyymatrix.cc/uploadeFile/20210125/db53552e688040afb286686f081e1e68f3fe946f75624598828f01898635152e.png
-default.vip.photo.man=https://filehive2.jyymatrix.cc/uploadeFile/20210125/3642f1d827c44c76832fea106c85e0f89e089c16cbcc4dd0a82bb52b9ac700f4.png
\ No newline at end of file
+default.vip.photo.man=https://filehive2.jyymatrix.cc/uploadeFile/20210125/3642f1d827c44c76832fea106c85e0f89e089c16cbcc4dd0a82bb52b9ac700f4.png
+
diff --git a/zq-erp/src/main/resources/config/mdprd/config.json b/zq-erp/src/main/resources/config/mdprd/config.json
index 1b5f059..a5574dd 100644
--- a/zq-erp/src/main/resources/config/mdprd/config.json
+++ b/zq-erp/src/main/resources/config/mdprd/config.json
@@ -8,7 +8,7 @@
     "imageCompressEnable": true, /* 是否压缩图片,默认是true */
     "imageCompressBorder": 1600, /* 图片压缩最长边限制 */
     "imageInsertAlign": "none", /* 插入的图片浮动方式 */
-    "imageUrlPrefix": "http://resource.hive.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
+    "imageUrlPrefix": "http://filehive2.jyymatrix.cc/uploadeFile/md", /* 图片访问路径前缀 */
     "imagePathFormat": "/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
                                 /* {filename} 会替换成原文件名,配置这项需要注意中文乱码问题 */
                                 /* {rand:6} 会替换成随机数,后面的数字是随机数的位数 */
@@ -28,13 +28,13 @@
     "scrawlFieldName": "upfile", /* 提交的图片表单名称 */
     "scrawlPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
     "scrawlMaxSize": 2048000, /* 上传大小限制,单位B */
-    "scrawlUrlPrefix": "http://resource.hive.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
+    "scrawlUrlPrefix": "http://filehive2.jyymatrix.cc/uploadeFile/md", /* 图片访问路径前缀 */
     "scrawlInsertAlign": "none",
 
     /* 截图工具上传 */
     "snapscreenActionName": "uploadimage", /* 执行上传截图的action名称 */
     "snapscreenPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
-    "snapscreenUrlPrefix": "http://resource.hive.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
+    "snapscreenUrlPrefix": "http://filehive2.jyymatrix.cc/uploadeFile/md", /* 图片访问路径前缀 */
     "snapscreenInsertAlign": "none", /* 插入的图片浮动方式 */
 
     /* 抓取远程图片配置 */
@@ -42,7 +42,7 @@
     "catcherActionName": "catchimage", /* 执行抓取远程图片的action名称 */
     "catcherFieldName": "source", /* 提交的图片列表表单名称 */
     "catcherPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
-    "catcherUrlPrefix": "http://resource.hive.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
+    "catcherUrlPrefix": "http://filehive2.jyymatrix.cc/uploadeFile/md", /* 图片访问路径前缀 */
     "catcherMaxSize": 2048000, /* 上传大小限制,单位B */
     "catcherAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 抓取图片格式显示 */
 
diff --git a/zq-erp/src/main/resources/config/prd/application.properties b/zq-erp/src/main/resources/config/prd/application.properties
index ecdb7bb..ee826cb 100644
--- a/zq-erp/src/main/resources/config/prd/application.properties
+++ b/zq-erp/src/main/resources/config/prd/application.properties
@@ -26,6 +26,7 @@
 spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
 spring.thymeleaf.prefix: classpath:/templates/views/
 spring.thymeleaf.cache=false
+mybatis-plus.global-config.db-config.id-type=auto
 mybatis-plus.config-location=classpath:mybatis/mybatis-config.xml
 mybatis-plus.mapper-locations=classpath*:mybatis/mapper/**/*.xml
 #设置全局时间返回格式 第三行设置为true表示返回时间戳
@@ -68,3 +69,4 @@
 #默认头像
 default.vip.photo.woman=https://filehive2.jyymatrix.cc/uploadeFile/20210125/db53552e688040afb286686f081e1e68f3fe946f75624598828f01898635152e.png
 default.vip.photo.man=https://filehive2.jyymatrix.cc/uploadeFile/20210125/3642f1d827c44c76832fea106c85e0f89e089c16cbcc4dd0a82bb52b9ac700f4.png
+
diff --git a/zq-erp/src/main/resources/config/xcx/config.json b/zq-erp/src/main/resources/config/xcx/config.json
index 1b5f059..09db45c 100644
--- a/zq-erp/src/main/resources/config/xcx/config.json
+++ b/zq-erp/src/main/resources/config/xcx/config.json
@@ -8,7 +8,7 @@
     "imageCompressEnable": true, /* 是否压缩图片,默认是true */
     "imageCompressBorder": 1600, /* 图片压缩最长边限制 */
     "imageInsertAlign": "none", /* 插入的图片浮动方式 */
-    "imageUrlPrefix": "http://resource.hive.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
+    "imageUrlPrefix": "http://filehive2.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
     "imagePathFormat": "/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
                                 /* {filename} 会替换成原文件名,配置这项需要注意中文乱码问题 */
                                 /* {rand:6} 会替换成随机数,后面的数字是随机数的位数 */
@@ -28,13 +28,13 @@
     "scrawlFieldName": "upfile", /* 提交的图片表单名称 */
     "scrawlPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
     "scrawlMaxSize": 2048000, /* 上传大小限制,单位B */
-    "scrawlUrlPrefix": "http://resource.hive.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
+    "scrawlUrlPrefix": "http://filehive2.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
     "scrawlInsertAlign": "none",
 
     /* 截图工具上传 */
     "snapscreenActionName": "uploadimage", /* 执行上传截图的action名称 */
     "snapscreenPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
-    "snapscreenUrlPrefix": "http://resource.hive.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
+    "snapscreenUrlPrefix": "http://filehive2.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
     "snapscreenInsertAlign": "none", /* 插入的图片浮动方式 */
 
     /* 抓取远程图片配置 */
@@ -42,7 +42,7 @@
     "catcherActionName": "catchimage", /* 执行抓取远程图片的action名称 */
     "catcherFieldName": "source", /* 提交的图片列表表单名称 */
     "catcherPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
-    "catcherUrlPrefix": "http://resource.hive.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
+    "catcherUrlPrefix": "http://filehive2.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */
     "catcherMaxSize": 2048000, /* 上传大小限制,单位B */
     "catcherAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 抓取图片格式显示 */
 
diff --git a/zq-erp/src/main/resources/mybatis/mapper/common/SysCompanyDao.xml b/zq-erp/src/main/resources/mybatis/mapper/common/SysCompanyDao.xml
index 2e65db5..5c612dd 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/common/SysCompanyDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/common/SysCompanyDao.xml
@@ -861,4 +861,7 @@
 			</if>
 		</where>
 	</select>
+	<select id="selectAll" resultMap="SysCompanyMap">
+		select * from sys_company
+	</select>
 </mapper>
\ No newline at end of file
diff --git a/zq-erp/src/main/resources/mybatis/mapper/common/SysRolePwoerFnDao.xml b/zq-erp/src/main/resources/mybatis/mapper/common/SysRolePwoerFnDao.xml
index 3c5c8b8..a1b0ef2 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/common/SysRolePwoerFnDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/common/SysRolePwoerFnDao.xml
@@ -150,10 +150,21 @@
 		</if>
 		</where>
 	</delete>
-	
-	
-	
-	<!-- 分页查询 -->
+    <delete id="deleteByFns">
+		DELETE a
+		FROM
+		sys_role_pwoer_fn a , sys_role b
+		WHERE
+		a.role_id = b.role_id
+		and b.company_id=#{companyId}
+		and a.fn_id in <foreach collection="list" index="index" item="item" open="("
+									 separator="," close=")">
+		#{item}
+	</foreach>
+	</delete>
+
+
+    <!-- 分页查询 -->
 	<select id="selectInPage" resultMap="SysRolePwoerFnMap">
 		select 
 			rpf_id,
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseFlowDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseFlowDao.xml
index d9d505a..96da104 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseFlowDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseFlowDao.xml
@@ -360,6 +360,12 @@
 		</where>
 		order by  create_time desc
 	</select>
+
+	<update id="updateVipCardId">
+		update money_card_use_flow
+			set car_use_id=#{cardId}
+		where vip_id=#{vipId} and type='会员充值'
+	</update>
 </mapper>
 
 		
\ No newline at end of file
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderFlowDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderFlowDao.xml
index 5c56a95..55817bf 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderFlowDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderFlowDao.xml
@@ -16,6 +16,7 @@
         <result property="vipId" column="vip_id" />
         <result property="payMethod" column="pay_method" />
         <result property="cardId" column="card_id" />
+        <result property="cardName" column="card_name" />
         <result property="isGift" column="is_gift" />
 
 		<result property="orderNo" column="order_no" />
@@ -70,8 +71,9 @@
 	</delete>
 
     <select id="selectByOrderId" resultMap="SysOrderFlowMap">
-		select a.*, b.order_no from sys_order_flow a
+		select a.*, b.order_no,c.card_name from sys_order_flow a
 		left join sys_order b on a.order_id=b.id
+		left join money_card_use c on a.card_id=c.id
 		where order_id=#{orderId}
 	</select>
 
@@ -97,12 +99,15 @@
 		a.pay_method as payMethod,
 		a.flow_no as flowNo,
 		d.shop_short_name as shopName,
+		f.card_name as cardName,
 		e.su_name as staffName
 		from sys_order_flow a
 		LEFT JOIN sys_order b on a.order_id=b.ID
 		LEFT JOIN sys_vip_info c on a.vip_id=c.ID
 		LEFT JOIN sys_shop_info d on a.shop_id=d.ID
 		LEFT JOIN sys_users e on e.su_id=b.STAFF_ID
+		left join money_card_use f on a.card_id=f.id
+
 		<where>
 
 				and a.company_id=#{record.companyId}
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 a3b0cd3..2e2de04 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml
@@ -353,11 +353,12 @@
         c.name as goodsName,
         g.name as cateName,
         a.COUNT,
+        a.COUNT *  a.ZK_PRICE as total,
         a.refundCount,
         a.ZK_PRICE,
         a.IS_FREE,
         a.pay_method,
-        a.status
+        b.statu
         from sys_order_item a
         left join sys_order b on a.ORDER_ID=b.ID
         left join shopping_goods c on a.goods_id=c.id
@@ -397,8 +398,8 @@
             <if test="guwenId != null and guwenId != ''  ">
                 and  b.STAFF_ID=#{guwenId}
             </if>
-            <if test="status != null and status != ''  ">
-                and  a.status=#{status}
+            <if test="statu != null and statu != ''  ">
+                and  b.statu=#{statu}
             </if>
 
         </where>
@@ -449,8 +450,8 @@
             <if test="guwenId != null and guwenId != ''  ">
                 and  b.STAFF_ID=#{guwenId}
             </if>
-            <if test="status != null and status != ''  ">
-                and  a.status=#{status}
+            <if test="statu != null and statu != ''  ">
+                and  b.statu=#{statu}
             </if>
         </where>
     </select>
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 e6ed5bb..558112d 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjServicesDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjServicesDao.xml
@@ -140,7 +140,11 @@
 
 	<!--  根据id更新 部分更新   -->
 	<update id="updateOrderTime">
-		UPDATE sys_proj_services set consume_time=#{consumeTime} WHERE id=#{id}
+		UPDATE sys_proj_services set
+		consume_time=#{serviceOrderTimeDto.consumeTime},
+			yy_time=#{serviceOrderTimeDto.yyTime},
+			create_time=#{serviceOrderTimeDto.createTime}
+		WHERE id=#{serviceOrderTimeDto.id}
 	</update>
 
 	<!-- 设置服务单为已通知 -->
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml
index 957d259..335a873 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml
@@ -728,13 +728,16 @@
         a.type,
         a.SOURCE,
         e.ORDER_NO,
-        a.remark
+        a.remark,
+        s.SHOP_NAME
         from sys_proj_use a
         left join shopping_goods b on a.proj_id = b.id
         left join sys_vip_info c on c.ID = a.VIP_ID
+            left join sys_shop_info s on c.SHOP_ID=s.id
         left join sys_order_item d on d.id = a.ORDER_ITEM_ID
         left join sys_order e on e.id = d.ORDER_ID
         left join shopping_goods_category f on f.id = b.cate_id
+
 
 
         <where>
@@ -892,6 +895,8 @@
         <collection property="taocanProjUse" ofType="com.matrix.system.hive.bean.SysProjUse">
             <id property="id" column="proj_info_id" />
             <result property="projName" column="proj_proj_name"/>
+            <result property="source" column="proj_source"/>
+            <result property="price" column="proj_price"/>
             <result property="failTime" column="proj_FAIL_TIME"/>
             <result property="surplusCount" column="proj_SURPLUS_COUNT"/>
             <result property="timeLength" column="proj_time_length"/>
@@ -913,6 +918,8 @@
             e.SURPLUS_COUNT proj_SURPLUS_COUNT,
             e.id proj_info_id,
             e.proj_id proj_projId,
+            e.source proj_source,
+            e.price proj_price,
             e.status proj_status,
             f.time_length proj_time_length,
             f.img proj_img
@@ -937,4 +944,8 @@
         </if>
     </select>
 
+    <select id="selectTaocanCountForCourseAndInfinite" resultType="java.lang.Integer">
+        select count(1) from sys_proj_use
+        where taocan_id=#{taocanId} and vip_id=#{vipId}
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopProductDao.xml b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopProductDao.xml
index 91c105d..b0061e1 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopProductDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopProductDao.xml
@@ -45,6 +45,7 @@
         <result property="ableScorePay" column="able_score_pay"/>
         <result property="ableSales" column="able_sales"/>
         <result property="scoreCategoryId" column="score_category_id"/>
+        <result property="isUnrealProduct" column="is_unreal_product"/>
 
         <association property="shopCoupon" select="com.matrix.system.shopXcx.dao.ShopCouponDao.selectById"
                      column="{id=couponId}"></association>
@@ -123,6 +124,7 @@
 			company_id,
         able_score_pay,
         able_sales,
+        is_unreal_product,
         score_category_id
 
 	</sql>
@@ -161,7 +163,8 @@
 			#{item.shopIds},
 			#{item.companyId},
 			#{item.ableScorePay},
-			#{item.ableSales},
+            #{item.ableSales},
+            #{item.isUnrealProduct},
 			#{item.scoreCategoryId}
 
 	</sql>
@@ -552,7 +555,10 @@
                 able_sales = #{record.ableSales},
             </if>
             <if test="record.scoreCategoryId != null and record.scoreCategoryId ">
-               score_category_id = #{record.scoreCategoryId},
+                score_category_id = #{record.scoreCategoryId},
+            </if>
+            <if test="record.isUnrealProduct != null and record.isUnrealProduct">
+                is_unreal_product = #{record.isUnrealProduct},
             </if>
 
         </set>
@@ -909,6 +915,7 @@
             a.able_score_pay,
             a.able_sales,
             a.score_category_id,
+		    a.is_unreal_product,
 			(SELECT SUM(s.stock) from shop_sku  s where s.p_id = a.id) as stockNum,
 			(SELECT ROUND(SUM(s.stock),2) from shop_sku  s where s.p_id = a.id) as stockNum,
 			shop_ids
diff --git a/zq-erp/src/main/resources/static/js/systools/AjaxProxyVue.js b/zq-erp/src/main/resources/static/js/systools/AjaxProxyVue.js
index ef97725..878dd39 100644
--- a/zq-erp/src/main/resources/static/js/systools/AjaxProxyVue.js
+++ b/zq-erp/src/main/resources/static/js/systools/AjaxProxyVue.js
@@ -121,6 +121,10 @@
 
 
 var MTools = {
+    closeIframe: function () {
+        parent.layer.close(parent.layer.getFrameIndex(window.name));
+    },
+
     /** 返回一个随机字符串 */
     uuid : function() {
 
diff --git a/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-order.html b/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-order.html
index d3566c6..c047688 100644
--- a/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-order.html
+++ b/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-order.html
@@ -52,6 +52,10 @@
 <body>
 <div class="panel-body" id="app" v-cloak>
         <el-row>
+                <el-card class="box-card" style="background-color: #0a628f;">
+                    <div style="padding:10px;font-size: 20px;">¥{{basicdetail.balance}}</div>
+                    <div>订单总金额</div>
+                </el-card >
                 <el-card class="box-card" style="background-color: #0f9aef;">
                     <div style="padding:10px;font-size: 20px;">¥{{basicdetail.balance}}</div>
                     <div>待计算金额</div>
@@ -148,6 +152,7 @@
                             </el-form-item>
                             <el-button type="primary" @click="search" >搜索</el-button>
                             <el-button @click="resetForm('form')">重置</el-button>
+                            <el-button>导出</el-button>
                         </el-form>
                     </el-col>
                 </el-row>
diff --git a/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-setting.html b/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-setting.html
index 888cad5..48bbaef 100644
--- a/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-setting.html
+++ b/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-setting.html
@@ -343,7 +343,9 @@
                         }
                         _this.shfs = data.mapInfo.shfs;
                         _this.sqtj = data.mapInfo.sqtj;
-                        _this.order = data.mapInfo.order;
+                        if (!data.mapInfo.order && data.mapInfo.order != null) {
+                            _this.order = data.mapInfo.order;
+                        }
                     }
                 });
             },
@@ -356,7 +358,7 @@
                 this.pushToSelectGoods(row);
             },
             pushToSelectGoods(goods) {
-
+                console.log(this.order)
                 //判断是否被选中
                 let selected = false;
                 for(let i = 0; i < this.order.length; i++){
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 021105c..70680aa 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
@@ -408,6 +408,10 @@
                                 label="支付方式">
                         </el-table-column>
                         <el-table-column
+                                prop="cardName"
+                                label="储值卡名称">
+                        </el-table-column>
+                        <el-table-column
                                 prop="flowNo"
                                 label="流水号">
                         </el-table-column>
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 01cda5f..f7fe57f 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
@@ -168,7 +168,7 @@
 			achieveRulsList : [],
 			shopList : [],
 			achieveUsers : [],
-			years : [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021],
+			years : [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021,2022],
 			months : ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"],
 			days : [],
 			form : {
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/jyls.html b/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/jyls.html
index c3b2a39..5ca688e 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/jyls.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/jyls.html
@@ -150,6 +150,11 @@
                     label="支付方式">
             </el-table-column>
             <el-table-column
+                    prop="cardName"
+                    sortable="custom"
+                    label="储值卡名称">
+            </el-table-column>
+            <el-table-column
                     prop="flowNo"
                     label="支付流水号">
             </el-table-column>
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/statistics-order-item.html b/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/statistics-order-item.html
index 9f946dd..62a5048 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/statistics-order-item.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/statistics-order-item.html
@@ -27,7 +27,7 @@
 			</div>
 			<div class="form-group mr-20">
 				<label >订单状态</label>
-				<select class="form-control " name="status"  >
+				<select class="form-control " name="statu"  >
 					<option value=''>--请选择订单状态--</option>
 					<option value='欠款'>欠款</option>
 					<option value='待付款'>待付款</option>
@@ -92,9 +92,10 @@
 					<th data-field="VIP_NAME" >客户名</th>
       			    <th data-field="COUNT"  data-sortable="true"   >购买数量</th>
       			    <th data-field="ZK_PRICE"  data-sortable="true"   >单价</th>
+      			    <th data-field="total"      >小计</th>
       			    <th data-field="su_name" >健康顾问</th>
       			    <th data-field="pay_method" >支付方式</th>
-      			    <th data-field="status" >状态</th>
+      			    <th data-field="statu" >状态</th>
 				</tr>
 			</thead>
 		</table>
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/statistics-projuse-item.html b/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/statistics-projuse-item.html
index 02bf9f9..46bd288 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/statistics-projuse-item.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/statistics-projuse-item.html
@@ -43,6 +43,14 @@
 				<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"
+					data-url="/admin/shopInfo/findShops" data-value="id"
+					data-filed="shopName"  name="shopId">
+				<option value="">--请选择所属门店--</option>
+			</select>
+			</div>
 
 			<div class="form-group mr-20">
 				<label>到期时间</label><!--    入库时间的查询增加一个查询的其实时间两个字段 -->
@@ -58,6 +66,7 @@
 				<tr>
 					<th data-formatter="MGrid.indexfn" data-align="center"  data-width="30px" >序号</th>
 					<th data-field="VIP_NAME" >客户名</th>
+					<th data-field="SHOP_NAME" >客户门店</th>
 					<th data-field="PROJ_NAME" >服务名称</th>
 					<th data-field="FAIL_TIME"  data-formatter="MGrid.getTime"  data-sortable="true"   >到期日期</th>
       			    <th data-field="SURPLUS_COUNT"  data-sortable="true"     >剩余次数</th>
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/cz-form.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/cz-form.html
index 962a224..174a386 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/cz-form.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/cz-form.html
@@ -218,6 +218,7 @@
 			userList: [],
 			treeSelect : [],
 			payMoneys : [],
+			order:{},
 			printPaper : false,
 		},
 		created : function() {
@@ -324,8 +325,19 @@
 						data: _this.cardInfo,
 						url: url,
 						callback: function (data) {
+							_this.order.id = data.mapInfo.orderId;
+
 							if (_this.printPaper) {
+								_this.$message.success(data.info);
 								_this.print();
+							} else {
+								_this.$message.success({
+									message : data.info,
+									duration : 1000,
+									onClose() {
+										_this.closeFrame();
+									}
+								});
 							}
 
 							if(parent.myGrid) {
@@ -336,7 +348,7 @@
 								parent.app.vipInfoFn();
 							}
 
-							_this.closeFrame();
+							// _this.closeFrame();
 						}
 					});
 				}
@@ -354,7 +366,7 @@
 						maxmin: true,
 						content: [basePath + '/admin/order/printOrder?id=' + this.order.id],
 						cancel: function (index, layero) {
-							_this.closeFram();
+							_this.closeFrame();
 						}
 					});
 				} else {
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 3297070..fb3829a 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
@@ -118,7 +118,7 @@
         }
     </style>
 </head>
-<body style="overflow: hidden">
+<body  >
 <div  id="app" v-cloak>
 
 
@@ -1103,6 +1103,7 @@
                                 //结算打印提示
                                 if (submitType == 1) {
                                     if (_this.printPaper) {
+                                        _this.$message.success(data.info);
                                         _this.print();
                                     } else {
                                         _this.$message.success({
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 5ace9ce..2e3cc8b 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
@@ -421,6 +421,10 @@
                                 label="支付方式">
                         </el-table-column>
                         <el-table-column
+                                prop="cardName"
+                                label="储值卡名称">
+                        </el-table-column>
+                        <el-table-column
                                 prop="flowNo"
                                 label="流水号">
                         </el-table-column>
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/service_all_list.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/service_all_list.html
index 106f1be..6f356c3 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/service_all_list.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/service_all_list.html
@@ -218,7 +218,7 @@
             title: "修改订单时间",
             maxmin: true,
             area: [MUI.SIZE_L, '500px'],
-            content: [basePath + '/admin/projService/toServiceOrderUpdateTime?id=' + id]
+            content: [basePath + '/admin/redirect/hive/beautySalon/updateServiceOrderTimeV2?id=' +id]
         });
     }
 
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/updateServiceOrderTime.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/updateServiceOrderTime.html
index 867bbc2..1287221 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/updateServiceOrderTime.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/updateServiceOrderTime.html
@@ -1,9 +1,4 @@
-
-
-
-
-
-<!DOCTYPE HTML>
+<!DOCTYPE HTML>
 <html xmlns:th="http://www.thymeleaf.org" xmlns:matrix="http://www.w3.org/1999/xhtml">
 <head>
 <meta charset="utf-8">
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/updateServiceOrderTimeV2.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/updateServiceOrderTimeV2.html
new file mode 100644
index 0000000..5f36762
--- /dev/null
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/updateServiceOrderTimeV2.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML>
+<html xmlns:th="http://www.thymeleaf.org" xmlns:matrix="http://www.w3.org/1999/xhtml">
+<head>
+    <meta charset="utf-8">
+    <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
+    <meta name="renderer" content="webkit|ie-comp|ie-stand">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport"
+          content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
+    <meta http-equiv="Cache-Control" content="no-siteapp"/>
+    <!-- 本框架基本脚本和样式 -->
+    <script type="text/javascript" th:src="@{/js/systools/MBaseVue.js}"></script>
+    <link rel="stylesheet" th:href="@{/plugin/element-ui/index.css}">
+    <link th:href="@{/css/styleOne/style.min.css}" rel="stylesheet" type="text/css"/>
+
+</head>
+<body>
+<div class="ibox-content" id="app" v-cloak  >
+    <el-form :model="serviceOrder"  ref="form" label-width="100px" class="demo-form">
+
+
+        <el-form-item label="创建时间">
+            <el-date-picker v-model="serviceOrder.createTime"   type="datetime"></el-date-picker>
+        </el-form-item>
+
+
+        <el-form-item label="预约时间">
+            <el-date-picker v-model="serviceOrder.yyTime"   type="datetime"></el-date-picker>
+        </el-form-item>
+
+
+        <el-form-item label="划扣时间">
+            <el-date-picker v-model="serviceOrder.consumeTime"   type="datetime" ></el-date-picker>
+            <span>修改划扣时间才会同步修改服务单业绩</span>
+        </el-form-item>
+
+        <el-form-item>
+            <el-button type="primary" @click="submitForm('form')" >保存</el-button>
+            <el-button @click="closeFram()">关闭</el-button>
+        </el-form-item>
+
+    </el-form>
+</div>
+</body>
+<script type="text/javascript" th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script>
+<script type="text/javascript" th:src="@{/js/plugin/jquery.query.js}"></script>
+<script type="text/javascript" th:src="@{/js/systools/AjaxProxyVue.js}"></script>
+<script type="text/javascript" th:src="@{/js/plugin/vue.js}"></script>
+<script type="text/javascript" th:src="@{/plugin/element-ui/index.js}"></script>
+<script src="https://cdn.jsdelivr.net/npm/@riophae/vue-treeselect@^0.4.0/dist/vue-treeselect.umd.min.js"></script>
+<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@riophae/vue-treeselect@^0.4.0/dist/vue-treeselect.min.css">
+
+
+<script>
+    var id = $.query.get("id");
+
+
+    var app = new Vue({
+        el: '#app',
+        data: {
+
+            //表单数据
+           serviceOrder:{}
+
+        },
+
+        /**
+         * 初始化数据表
+         */
+        created: function () {
+            this.loadData()
+        },
+
+        methods: {
+            loadData(){
+                let _this=this;
+                AjaxProxy.requst({
+                    app: _this,
+                    url: basePath + '/admin/projService/findServiceOrderInfoVo/'+id,
+                    callback: function (data) {
+                        _this.serviceOrder = data.data;
+                    }
+                });
+            },
+            submitForm(){
+                let _this=this;
+                let data={
+                    id:this.serviceOrder.id,
+                    yyTime:this.serviceOrder.yyTime,
+                    createTime:this.serviceOrder.createTime,
+                    consumeTime:this.serviceOrder.consumeTime
+                }
+                AjaxProxy.requst({
+                    app: _this,
+                    data: data,
+                    contentType: 'application/json',
+                    url: basePath + '/admin/projService/updateOrderTime',
+                    callback: function (data) {
+
+                        _this.$message.success("修改成功");
+                        if(parent.myGrid){
+                            parent.myGrid.serchData()
+                        }
+                        if(parent.app){
+                            parent.app.serviceOrderQuery();
+                        }
+                        setInterval(MTools.closeIframe(), 1000);
+
+                    }
+                });
+
+            },
+            closeFram: function () {
+
+              parent.layer.close(parent.layer.getFrameIndex(window.name));
+
+            },
+
+        }
+
+    })
+</script>
+
+</body>
+</html>
+
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 654e4b9..cd96811 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
@@ -124,10 +124,12 @@
                 </el-col>
             </el-col>
             <el-col :span="8" style="float: right; margin-right: 20px;">
+
                 <el-button type="primary" plain @click="recharge">充值</el-button>
                 <el-button type="warning" plain @click="addOrder">开单</el-button>
                 <el-button type="success" plain @click="addServiceOrder">开服务单</el-button>
                 <el-button type="info" plain @click="exportExcel">导出项目</el-button>
+                <el-button type="primary" plain @click="openAdd">会员注册</el-button>
             </el-col>
         </el-header>
         <el-container>
@@ -820,6 +822,14 @@
             }
         },
         methods : {
+            openAdd(){
+                layer.full(layer.open({
+                    type : 2,
+                    title : "添加会员信息",
+                    area : [ MUI.SIZE_L, '450px' ],
+                    content : [ basePath+'/admin/vipInfo/editForm' ]
+                }));
+            },
             //打开订单详情页面
             openOrder(index,row){
                 layer.full(layer.open({
@@ -1107,7 +1117,7 @@
                     title : "充值卡变更记录",
                     area : MUI.SIZE_M,
                     maxmin : true,
-                    content : [ basePath + "/admin/redirect/hive/vip/moneyCardUseFlow-list?vipId=" + row.vipId ]
+                    content : [ basePath + "/admin/redirect/hive/vip/moneyCardUseFlow-list?vipId=" + row.vipId + "&cardId=" + row.id ]
                 });
             },
 
@@ -1243,7 +1253,7 @@
                     title: "修改订单时间",
                     maxmin: true,
                     area: [MUI.SIZE_L, '500px'],
-                    content: [basePath + '/admin/projService/toServiceOrderUpdateTime?id=' + row.id]
+                    content: [basePath + '/admin/redirect/hive/beautySalon/updateServiceOrderTimeV2?id=' + row.id]
                 });
             },
             /********* 服务单tab end ***********/
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/printTemplates/meidu.html b/zq-erp/src/main/resources/templates/views/admin/hive/printTemplates/meidu.html
index 22c1c0a..b760539 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive/printTemplates/meidu.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/printTemplates/meidu.html
@@ -32,7 +32,7 @@
         <h1   style="text-align: center;font-size: 18px;margin: 20px auto;">
             {{order.shopName}}
         </h1>
-        <table style="width: 100%; font-size:12px;line-height: 20px;">
+        <table style="width: 100%; font-size:12px;">
 
             <tr>
                 <td colspan="2">
@@ -56,7 +56,7 @@
             </tr>
         </table>
         <p>--------------------------------</p>
-        <table style="width: 80%;font-size:12px;margin-top: 20px;text-align: left">
+        <table style="width: 80%;font-size:12px;margin-top: 10px;text-align: left; margin-bottom: 5px;">
 
             <tr>
                 <th style="text-align: left;"  colspan="4">产品</th>
@@ -89,7 +89,7 @@
             </tr>
         </table>
         <p>--------------------------------</p>
-        <table style="width: 100%;font-size: 10px;line-height: 30px;">
+        <table style="width: 100%;font-size: 10px; margin-bottom: 5px;">
             <tr  >
                 <td>
                     <b  >储值卡余额:</b><span >{{totalMoney}}</span>
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/printTemplates/print-service-meidu.html b/zq-erp/src/main/resources/templates/views/admin/hive/printTemplates/print-service-meidu.html
index f56a3dc..62f8f07 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive/printTemplates/print-service-meidu.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/printTemplates/print-service-meidu.html
@@ -30,7 +30,7 @@
         <h1   style="text-align: center;font-size:18px;margin: 20px auto;">
             {{projService.shopName}}
         </h1>
-        <table style="width: 100%; font-size:10px;line-height: 20px;">
+        <table style="width: 100%; font-size:10px;">
 
             <tr>
                 <td colspan="2">
@@ -53,7 +53,7 @@
                 </td>
             </tr>
         </table>
-        <table style="width: 80%;font-size:10px;margin-top: 20px;text-align: left">
+        <table style="width: 80%;font-size:10px;margin-top: 10px;text-align: left; margin-bottom: 5px;">
             <tr>
                 <th style="text-align: left;"  colspan="4">产品</th>
             </tr>
@@ -70,12 +70,12 @@
                 <tr  >
                     <td>{{item.count }}</td>
                     <td>{{item.projUse.price }}</td>
-                    <td >{{item.projUse.surplusCount }}</td>
+                    <td >{{item.projUse.remainCount == null ? "-" : item.projUse.remainCount}}</td>
                     <td>{{item.beautiStaffInfo?item.beautiStaffInfo.suName:''}}</td>
                 </tr>
             </template>
         </table>
-        <table style="width: 100%;font-size: 10px;line-height: 30px;">
+        <table style="width: 100%;font-size: 10px; margin-bottom: 5px;">
             <tr>
                 <td>
                     <b>本次划扣:</b> <span >{{projService.money}}</span>
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/products/shoppinggoods-md-list.html b/zq-erp/src/main/resources/templates/views/admin/hive/products/shoppinggoods-md-list.html
index 77b6bba..9efa91b 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive/products/shoppinggoods-md-list.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/products/shoppinggoods-md-list.html
@@ -151,7 +151,7 @@
         delUrl = basePath + "/admin/shoppinggoods/del";
 
         myGrid = MGrid.initGrid({
-            url: basePath + "/admin/shoppinggoods/showList",
+            url: basePath + "/admin/shoppinggoods/showAllList",
             delUrl: delUrl
         });
     });
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/products/shoppinggoods-zb-list.html b/zq-erp/src/main/resources/templates/views/admin/hive/products/shoppinggoods-zb-list.html
index a9e5af4..b15b2d8 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive/products/shoppinggoods-zb-list.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/products/shoppinggoods-zb-list.html
@@ -147,7 +147,7 @@
         delUrl = basePath + "/admin/shoppinggoods/del";
 
         myGrid = MGrid.initGrid({
-            url: basePath + "/admin/shoppinggoods/showList",
+            url: basePath + "/admin/shoppinggoods/showAllList",
             delUrl: delUrl
         });
     });
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 01cda5f..e1eed9a 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
@@ -168,7 +168,7 @@
 			achieveRulsList : [],
 			shopList : [],
 			achieveUsers : [],
-			years : [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021],
+			years : [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022],
 			months : ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"],
 			days : [],
 			form : {
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/statistics/jyls.html b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/jyls.html
index 130f97d..b77076e 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive/statistics/jyls.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/jyls.html
@@ -137,6 +137,11 @@
                     label="支付方式">
             </el-table-column>
             <el-table-column
+                    prop="cardName"
+                    sortable="custom"
+                    label="储值卡名称">
+            </el-table-column>
+            <el-table-column
                     prop="flowNo"
                     label="支付流水号">
             </el-table-column>
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/statistics/statistics-order-item.html b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/statistics-order-item.html
index 1a3af24..b714909 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive/statistics/statistics-order-item.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/statistics-order-item.html
@@ -27,7 +27,7 @@
 			</div>
 			<div class="form-group mr-20">
 				<label >订单状态</label>
-				<select class="form-control " name="status"  >
+				<select class="form-control " name="statu"  >
 					<option value=''>--请选择订单状态--</option>
 					<option value='欠款'>欠款</option>
 					<option value='待付款'>待付款</option>
@@ -84,9 +84,10 @@
 					<th data-field="VIP_NAME" >客户名</th>
       			    <th data-field="COUNT"  data-sortable="true"   >购买数量</th>
       			    <th data-field="ZK_PRICE"  data-sortable="true"   >单价</th>
+					<th data-field="total"      >小计</th>
       			    <th data-field="su_name" >健康顾问</th>
       			    <th data-field="pay_method" >支付方式</th>
-      			    <th data-field="status" >状态</th>
+      			    <th data-field="statu" >状态</th>
 				</tr>
 			</thead>
 		</table>
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/statistics/statistics-projuse-item.html b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/statistics-projuse-item.html
index ab0f0cb..0df5c9d 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive/statistics/statistics-projuse-item.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/statistics-projuse-item.html
@@ -42,7 +42,14 @@
 				<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"
+					data-url="/admin/shopInfo/findShops" data-value="id"
+					data-filed="shopName"  name="shopId">
+				<option value="">--请选择所属门店--</option>
+			</select>
+			</div>
 
 			<div class="form-group mr-20">
 				<label>到期时间</label><!--    入库时间的查询增加一个查询的其实时间两个字段 -->
@@ -58,6 +65,7 @@
 				<tr>
 					<th data-formatter="MGrid.indexfn" data-align="center"  data-width="30px" >序号</th>
 					<th data-field="VIP_NAME" >客户名</th>
+					<th data-field="SHOP_NAME" >客户所属门店</th>
 					<th data-field="PROJ_NAME" >服务名称</th>
 					<th data-field="FAIL_TIME"  data-formatter="MGrid.getTime"  data-sortable="true"   >到期日期</th>
       			    <th data-field="SURPLUS_COUNT"  data-sortable="true"     >剩余次数</th>
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/vip/moneyCardUseFlow-list.html b/zq-erp/src/main/resources/templates/views/admin/hive/vip/moneyCardUseFlow-list.html
index f3a0475..67062b7 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive/vip/moneyCardUseFlow-list.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/vip/moneyCardUseFlow-list.html
@@ -21,6 +21,7 @@
         <form class="form-inline" id="serchform2">
             <!-- 用于套餐的查询 -->
             <input autocomplete="off"   type="hidden" name="vipId" th:value="${param.vipId}" class="vipId">
+            <input autocomplete="off" type="hidden" name="carUseId" th:value="${param.cardId}" />
         </form>
     </div>
     <div class="row mt-10">
diff --git a/zq-erp/src/main/resources/templates/views/admin/oa/assets/fixeAssets-list.html b/zq-erp/src/main/resources/templates/views/admin/oa/assets/fixeAssets-list.html
index e55eed3..35684c2 100644
--- a/zq-erp/src/main/resources/templates/views/admin/oa/assets/fixeAssets-list.html
+++ b/zq-erp/src/main/resources/templates/views/admin/oa/assets/fixeAssets-list.html
@@ -55,6 +55,7 @@
             <button matrix:btn="oaFixedAssets-add"  onclick="openAdd()" type="button" class="btn btn-info btn-sm"><i class="fa fa-plus" ></i>  新增</button>
             <button matrix:btn="oaFixedAssets-edit"  onclick="openEdit()" type="button" class="btn btn-info btn-sm"><i class="fa fa-edit" ></i> 编辑</button>
             <button  matrix:btn="oaFixedAssets-dels" onclick="myGrid.delItems('id')" type="button" class="btn btn-danger btn-sm"><i class="fa fa-trash" ></i>批量删除</button>
+            <button    onclick="exportExcel()" type="button" class="btn btn-info btn-sm"><i class="fa fa-download" ></i> 导出</button>
         </div>
         <!-- 数据表格部分 -->
         <table id="mgrid">
@@ -115,6 +116,12 @@
             content: [basePath + '/admin/oaFixedAssets/editForm?id=' + id]
         });
     }
+
+    function exportExcel(){
+        var param=MForm.toUrlParam("#serchform");
+        window.location.href=basePath+"/admin/oaFixedAssets/exportExcel?"+param;
+    }
+
 </script>
 
 </body>
diff --git a/zq-erp/src/main/resources/templates/views/admin/shop/shopAdvertisType-list.html b/zq-erp/src/main/resources/templates/views/admin/shop/shopAdvertisType-list.html
index 084a646..000a29b 100644
--- a/zq-erp/src/main/resources/templates/views/admin/shop/shopAdvertisType-list.html
+++ b/zq-erp/src/main/resources/templates/views/admin/shop/shopAdvertisType-list.html
@@ -722,8 +722,8 @@
                 if(zjw != null && zjh != null){
                     cNode.nodeStyleStr = '{"width":"'+zjw+'px","height":"'+zjh+'px"}';
                 }
-                if(this.interval != null && this.previousMargin != null && this.nextMargin != null){
-                    cNode.nodeAttribute = '{"interval":'+this.interval+',"previous-margin":'+this.previousMargin+',"next-margin":'+this.nextMargin+'}';
+                if(this.interval != null && this.previousMargin != null && this.nextMargin != null && this.interval != '' && this.previousMargin != '' && this.nextMargin != ''){
+                    cNode.nodeAttribute = '{\"interval\":'+this.interval+',\"previous-margin\":'+this.previousMargin+',\"next-margin\":'+this.nextMargin+'}';
                 }
 
                 if (cNode.nodeStyleStr != null && cNode.nodeStyleStr.length > 1) {
diff --git a/zq-erp/src/main/resources/templates/views/admin/shop/shopProduct-form.html b/zq-erp/src/main/resources/templates/views/admin/shop/shopProduct-form.html
index 96cde1a..d3ad1c5 100644
--- a/zq-erp/src/main/resources/templates/views/admin/shop/shopProduct-form.html
+++ b/zq-erp/src/main/resources/templates/views/admin/shop/shopProduct-form.html
@@ -196,6 +196,22 @@
 
 
                             </div>
+
+                            <div class="form-group">
+                                <label class="col-sm-2 control-label">是否虚拟产品
+                                </label>
+                                <div class="col-sm-4">
+                                    <select th:field="${obj.isUnrealProduct}" class="form-control select2 " size="1"
+                                            name="isUnrealProduct"
+                                            style="width: 100%">
+                                        <option value="2" th:selected="${obj.isUnrealProduct == '2'}">否</option>
+                                        <option value="1" th:selected="${obj.isUnrealProduct == '1'}">是</option>
+                                        </option>
+
+                                    </select>
+                                </div>
+
+                            </div>
                         </div>
                     </div>
                 </div>
diff --git a/zq-erp/src/main/resources/templates/views/super/sysCompany-form.html b/zq-erp/src/main/resources/templates/views/super/sysCompany-form.html
index 7818f3a..ea1c420 100644
--- a/zq-erp/src/main/resources/templates/views/super/sysCompany-form.html
+++ b/zq-erp/src/main/resources/templates/views/super/sysCompany-form.html
@@ -1,211 +1,211 @@
 <!DOCTYPE HTML>
 <html>
 <head>
-<meta charset="utf-8">
-<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
-<meta name="renderer" content="webkit|ie-comp|ie-stand">
-<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-<meta name="viewport"
-	content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
-<meta http-equiv="Cache-Control" content="no-siteapp" />
-<!-- 本框架基本脚本和样式 -->
-<script type="text/javascript"
-	th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script>
-<script type="text/javascript" th:src="@{/js/systools/MBase.js}"></script>
+	<meta charset="utf-8">
+	<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
+	<meta name="renderer" content="webkit|ie-comp|ie-stand">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+	<meta name="viewport"
+		  content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
+	<meta http-equiv="Cache-Control" content="no-siteapp" />
+	<!-- 本框架基本脚本和样式 -->
+	<script type="text/javascript"
+			th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script>
+	<script type="text/javascript" th:src="@{/js/systools/MBase.js}"></script>
 
-<!-- 界面单独引入的其他样式和脚本 -->
-<link rel="stylesheet"
-	th:href="@{/plugin/zTree/zTreeStyle/zTreeStyle.css}" type="text/css">
-<script type="text/javascript"
-	th:src="@{/plugin/zTree/jquery.ztree.core-3.5.min.js}"></script>
-<script type="text/javascript"
-	th:src="@{/plugin/zTree/jquery.ztree.excheck.min.js}"></script>
+	<!-- 界面单独引入的其他样式和脚本 -->
+	<link rel="stylesheet"
+		  th:href="@{/plugin/zTree/zTreeStyle/zTreeStyle.css}" type="text/css">
+	<script type="text/javascript"
+			th:src="@{/plugin/zTree/jquery.ztree.core-3.5.min.js}"></script>
+	<script type="text/javascript"
+			th:src="@{/plugin/zTree/jquery.ztree.excheck.min.js}"></script>
 	<style>
-		#treeDemo{
-			height: 500px;
-			overflow: scroll;
-			width: 300px;
-		}
+        #treeDemo{
+            height: 500px;
+            overflow: scroll;
+            width: 300px;
+        }
 
 	</style>
 </head>
 <body>
-	<div class="ibox-content">
-		<form class="form-horizontal" id="dataform"
-			onsubmit="javascripr:return false;">
-			<input   type="hidden" name="tokenUrl" th:value="${tokenUrl}"> <input
-				type="hidden" name="token" th:value="${token}"> <input
-				type="hidden" name="comId" th:value="${obj.comId }">
-			<div class="form-group">
-				<label class="col-sm-2 control-label">公司名称<span
+<div class="ibox-content">
+	<form class="form-horizontal" id="dataform"
+		  onsubmit="javascripr:return false;">
+		<input   type="hidden" name="tokenUrl" th:value="${tokenUrl}"> <input
+			type="hidden" name="token" th:value="${token}"> <input
+			type="hidden" name="comId" th:value="${obj.comId }">
+		<div class="form-group">
+			<label class="col-sm-2 control-label">公司名称<span
 					class="text-danger">*</span></label>
-				<div class="col-sm-4">
-					<input   type="text" dataType="*1-100" class="form-control"
-						name="comName" th:value="${obj.comName }" 
-						nullmsg="公司名称不能为空">
-					<div class="Validform_checktip"></div>
-				</div>
-				<label class="col-sm-2 control-label">联系人<span
-					class="text-danger">*</span></label>
-				<div class="col-sm-4">
-					<input   type="text" dataType="*1-50" class="form-control"
-						th:value="${obj.comBoss }" name="comBoss" nullmsg="联系人不能为空">
-					<div class="Validform_checktip"></div>
-				</div>
+			<div class="col-sm-4">
+				<input   type="text" dataType="*1-100" class="form-control"
+						 name="comName" th:value="${obj.comName }"
+						 nullmsg="公司名称不能为空">
+				<div class="Validform_checktip"></div>
 			</div>
-			<div class="form-group">
-				<label class="col-sm-2 control-label">联系电话</label>
-				<div class="col-sm-4">
-					<input   type="text" dataType="*11-11" class="form-control"
-						name="comBossTel" ignore="ignore" th:value="${obj.comBossTel }"
+			<label class="col-sm-2 control-label">联系人<span
+					class="text-danger">*</span></label>
+			<div class="col-sm-4">
+				<input   type="text" dataType="*1-50" class="form-control"
+						 th:value="${obj.comBoss }" name="comBoss" nullmsg="联系人不能为空">
+				<div class="Validform_checktip"></div>
+			</div>
+		</div>
+		<div class="form-group">
+			<label class="col-sm-2 control-label">联系电话</label>
+			<div class="col-sm-4">
+				<input   type="text" dataType="*11-11" class="form-control"
+						 name="comBossTel" ignore="ignore" th:value="${obj.comBossTel }"
 						 nullmsg="联系电话不能为空">
-					<div class="Validform_checktip"></div>
-				</div>
-				<label class="col-sm-2 control-label">地址</label>
-				<div class="col-sm-4">
-					<input   type="text" dataType="*1-510" class="form-control"
-						ignore="ignore" th:value="${obj.comAddress }" name="comAddress"
-						nullmsg="地址不能为空">
-					<div class="Validform_checktip"></div>
-				</div>
+				<div class="Validform_checktip"></div>
 			</div>
-			<div class="form-group">
-				<label class="col-sm-2 control-label">网站地址<span
-						class="text-danger">*</span></label>
-				<div class="col-sm-4">
-					<input   type="text"  class="form-control"
-						ignore="ignore" dataType="*1-100" th:value="${obj.comWebUrl }" name="comWebUrl"
-						nullmsg="网站不能为空">
-					<div class="Validform_checktip"></div>
-				</div>
-				<label class="col-sm-2 control-label">企业可以用店铺数</label>
-				<div class="col-sm-4">
-					<input   type="text" dataType="n" class="form-control"
-						ignore="ignore" th:value="${obj.comAge}" name="comAge"
-						nullmsg="企业可以用店铺数不能为空">
-					<div class="Validform_checktip"></div>
-				</div>
+			<label class="col-sm-2 control-label">地址</label>
+			<div class="col-sm-4">
+				<input   type="text" dataType="*1-510" class="form-control"
+						 ignore="ignore" th:value="${obj.comAddress }" name="comAddress"
+						 nullmsg="地址不能为空">
+				<div class="Validform_checktip"></div>
 			</div>
+		</div>
+		<div class="form-group">
+			<label class="col-sm-2 control-label">网站地址<span
+					class="text-danger">*</span></label>
+			<div class="col-sm-4">
+				<input   type="text"  class="form-control"
+						 ignore="ignore" dataType="*1-100" th:value="${obj.comWebUrl }" name="comWebUrl"
+						 nullmsg="网站不能为空">
+				<div class="Validform_checktip"></div>
+			</div>
+			<label class="col-sm-2 control-label">企业可以用店铺数</label>
+			<div class="col-sm-4">
+				<input   type="text" dataType="n" class="form-control"
+						 ignore="ignore" th:value="${obj.comAge}" name="comAge"
+						 nullmsg="企业可以用店铺数不能为空">
+				<div class="Validform_checktip"></div>
+			</div>
+		</div>
 
-			<div class="form-group">
-				<label class="col-sm-2 control-label">公司编码<span
-						class="text-danger">*</span></label>
-				<div class="col-sm-4">
-					<input   type="text" dataType="*1-100" class="form-control"
-							 name="comCode" th:value="${obj.comCode }"
-							 nullmsg="公司编码不能为空">
-					<div class="Validform_checktip"></div>
-				</div>
+		<div class="form-group">
+			<label class="col-sm-2 control-label">公司编码<span
+					class="text-danger">*</span></label>
+			<div class="col-sm-4">
+				<input   type="text" dataType="*1-100" class="form-control"
+						 name="comCode" th:value="${obj.comCode }"
+						 nullmsg="公司编码不能为空">
+				<div class="Validform_checktip"></div>
 			</div>
-			<div class="form-group">
-				<label class="col-sm-2 control-label">企业功能</label>
-				<div class=" ztree col-sm-9" id="treeDemo"></div>
+		</div>
+		<div class="form-group">
+			<label class="col-sm-2 control-label">企业功能</label>
+			<div class=" ztree col-sm-9" id="treeDemo"></div>
+		</div>
+		<div class="form-group ">
+			<div class="col-sm-12 text-center">
+				<a href="javascript:;" onclick="myForm.submit()"
+				   class="btn btn-success radius"><i class="fa fa-check"></i> 保存</a>&nbsp;&nbsp;&nbsp;&nbsp;
+				<a class="btn btn-danger radius" href="javascript:;"
+				   onclick="MTools.closeForm()"><i class="fa fa-close"></i> 关闭</a>
 			</div>
-			<div class="form-group ">
-				<div class="col-sm-12 text-center">
-					<a href="javascript:;" onclick="myForm.submit()"
-						class="btn btn-success radius"><i class="fa fa-check"></i> 保存</a>&nbsp;&nbsp;&nbsp;&nbsp;
-					<a class="btn btn-danger radius" href="javascript:;"
-						onclick="MTools.closeForm()"><i class="fa fa-close"></i> 关闭</a>
-				</div>
-			</div>
-		</form>
-	</div>
-	<script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script>
-	<script th:inline="javascript">
-		var invokeUrl = basePath+"/admin/sysCompany/addCompany";
-		/*<![CDATA[*/
-		var obj=/*[[${obj}]]*/     
-		/*]]>*/
+		</div>
+	</form>
+</div>
+<script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script>
+<script th:inline="javascript">
+    var invokeUrl = basePath+"/admin/sysCompany/addCompany";
+    /*<![CDATA[*/
+    var obj=/*[[${obj}]]*/
+    /*]]>*/
+    if(obj.comId!=null){
+        invokeUrl = basePath+"/admin/sysCompany/modifyCompany";
+    }
+
+    var myForm = null;
+    var tree = null;
+    $(function() {
+        MTools.autoFullSelect();
+        $(".select2").select2({
+            'width' : '100%'
+        });
+        myForm = MForm.initForm({
+            invokeUrl : invokeUrl,
+            beforeSubmit : function() {
+                var items = tree.getCheckedNodes();
+                var keys = "";
+                for (var i = 0; i < items.length; i++) {
+                    keys += items[i]["id"] + ",";
+                }
+                myForm.initParam.extendParam = {
+                    "comFunctions" : keys
+                };
+            },
+            afterSubmit : function() {
+                parent.myGrid.serchData();
+            },
+        });
+        initFunctionList();
+    });
+
+    function initFunctionList() {
+        var zNodes = new Array();
+        $.AjaxProxy().invoke(
+            basePath+"/admin/sysFunction/all",
+            function(loj) {
+                for (var i = 0; i < loj.getRowCount(); i++) {
+                    zNodes[i] = createNode(loj.getString(i, "fnId"),
+                        loj.getString(i, "fnParentId"), loj
+                            .getString(i, "fnName"));
+                }
+                initTree(zNodes);
+            });
+    }
+
+    function initTree(zNodes) {
+        var setting = {
+            check : {
+                enable : true,
+                chkStyle : "checkbox",
+                radioType : "level",
+                chkboxType : {
+                    "Y" : "ps",
+                    "N" : "ps"
+                }
+            },
+            view : {
+                dblClickExpand : false,
+                showLine : true,
+            },
+            data : {
+                simpleData : {
+                    enable : true,
+                    idKey : "id",
+                    pIdKey : "pId",
+                    rootPId : ""
+                }
+            },
+
+        };
+        tree = $.fn.zTree.init($("#treeDemo"), setting, zNodes);
+    }
+
+    function createNode(id, parentId, name) {
+        var o = new Object();
+        o.id = id;
+        o.pId = parentId;
+        o.name = name;
+        o.open = true;
+        //如果是编辑则设置节点选中
         if(obj.comId!=null){
-	    	invokeUrl = basePath+"/admin/sysCompany/modifyCompany";
+            //var fns = "${obj.comFunctions}";
+            var fns = obj.comFunctions;
+            if (fns.indexOf(id) != -1) {
+                o.checked = true;
+            }
         }
 
-		var myForm = null;
-		var tree = null;
-		$(function() {
-			MTools.autoFullSelect();
-			$(".select2").select2({
-				'width' : '100%'
-			});
-			myForm = MForm.initForm({
-				invokeUrl : invokeUrl,
-				beforeSubmit : function() {
-					var items = tree.getCheckedNodes();
-					var keys = "";
-					for (var i = 0; i < items.length; i++) {
-						keys += items[i]["id"] + ",";
-					}
-					myForm.initParam.extendParam = {
-						"comFunctions" : keys
-					};
-				},
-				afterSubmit : function() {
-					parent.myGrid.serchData();
-				},
-			});
-			initFunctionList();
-		});
-
-		function initFunctionList() {
-			var zNodes = new Array();
-			$.AjaxProxy().invoke(
-					basePath+"/admin/sysFunction/all",
-					function(loj) {
-						for (var i = 0; i < loj.getRowCount(); i++) {
-							zNodes[i] = createNode(loj.getString(i, "fnId"),
-									loj.getString(i, "fnParentId"), loj
-											.getString(i, "fnName"));
-						}
-						initTree(zNodes);
-					});
-		}
-
-		function initTree(zNodes) {
-			var setting = {
-				check : {
-					enable : true,
-					chkStyle : "checkbox",
-					radioType : "level",
-					chkboxType : {
-						"Y" : "ps",
-						"N" : "ps"
-					}
-				},
-				view : {
-					dblClickExpand : false,
-					showLine : true,
-				},
-				data : {
-					simpleData : {
-						enable : true,
-						idKey : "id",
-						pIdKey : "pId",
-						rootPId : ""
-					}
-				},
-
-			};
-			tree = $.fn.zTree.init($("#treeDemo"), setting, zNodes);
-		}
-
-		function createNode(id, parentId, name) {
-			var o = new Object();
-			o.id = id;
-			o.pId = parentId;
-			o.name = name;
-			o.open = true;
-			//如果是编辑则设置节点选中
-		if(obj.comId!=null){
-			//var fns = "${obj.comFunctions}";
-			var fns = obj.comFunctions;
-			if (fns.indexOf(id) != -1) {
-				o.checked = true;
-			}
-		}
-			
-			return o;
-		}
-	</script>
+        return o;
+    }
+</script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zq-xcx/project.config.json b/zq-xcx/project.config.json
index 77acbda..a6ed60e 100644
--- a/zq-xcx/project.config.json
+++ b/zq-xcx/project.config.json
@@ -1,224 +1,224 @@
 {
-  "description": "项目配置文件。",
-  "packOptions": {
-    "ignore": []
-  },
-  "setting": {
-    "urlCheck": false,
-    "es6": true,
-    "enhance": true,
-    "postcss": true,
-    "preloadBackgroundData": false,
-    "minified": true,
-    "newFeature": true,
-    "coverView": true,
-    "nodeModules": false,
-    "autoAudits": false,
-    "showShadowRootInWxmlPanel": true,
-    "scopeDataCheck": false,
-    "uglifyFileName": false,
-    "checkInvalidKey": true,
-    "checkSiteMap": true,
-    "uploadWithSourceMap": true,
-    "compileHotReLoad": false,
-    "useMultiFrameRuntime": true,
-    "useApiHook": true,
-    "useApiHostProcess": false,
-    "babelSetting": {
-      "ignore": [],
-      "disablePlugins": [],
-      "outputPath": ""
-    },
-    "enableEngineNative": false,
-    "bundle": false,
-    "useIsolateContext": true,
-    "useCompilerModule": true,
-    "userConfirmedUseCompilerModuleSwitch": false,
-    "userConfirmedBundleSwitch": false,
-    "packNpmManually": false,
-    "packNpmRelationList": [],
-    "minifyWXSS": true
-  },
-  "compileType": "miniprogram",
-  "libVersion": "1.9.98",
-  "appid": "wx3836ab3c1490ff29",
-  "projectname": "%E8%82%BD%E7%A0%94",
-  "isGameTourist": false,
-  "simulatorType": "wechat",
-  "simulatorPluginLibVersion": {},
-  "condition": {
-    "plugin": {
-      "list": []
-    },
-    "game": {
-      "list": []
-    },
-    "gamePlugin": {
-      "list": []
-    },
-    "miniprogram": {
-      "list": [
-        {
-          "id": -1,
-          "name": "pages/yuyue/yyInfo",
-          "pathName": "pages/yuyue/yyInfo",
-          "query": "model=1&id=10",
-          "scene": null
-        },
-        {
-          "id": -1,
-          "name": "pages/customerCenter/customerCenter",
-          "pathName": "pages/customerCenter/customerCenter",
-          "query": "",
-          "scene": null
-        },
-        {
-          "id": -1,
-          "name": "pages/yuyue/order",
-          "pathName": "pages/yuyue/order",
-          "query": "status=0",
-          "scene": null
-        },
-        {
-          "id": -1,
-          "name": "pages/service/service",
-          "pathName": "pages/service/service",
-          "query": "status=0",
-          "scene": null
-        },
-        {
-          "id": -1,
-          "name": "pages/logistics/logistics",
-          "pathName": "pages/logistics/logistics",
-          "query": "id=911",
-          "scene": null
-        },
-        {
-          "id": -1,
-          "name": "pages/yuyue/choseShop",
-          "pathName": "pages/yuyue/choseShop",
-          "query": "",
-          "scene": null
-        },
-        {
-          "id": -1,
-          "name": "pages/service/service2",
-          "pathName": "pages/service/service2",
-          "query": "",
-          "scene": null
-        },
-        {
-          "id": -1,
-          "name": "pages/shopCar/shopCar",
-          "pathName": "pages/shopCar/shopCar",
-          "query": "",
-          "scene": null
-        },
-        {
-          "id": 8,
-          "name": "pages/groupbuy/groupList",
-          "pathName": "pages/groupbuy/groupList",
-          "query": "",
-          "scene": null
-        },
-        {
-          "id": 9,
-          "name": "groupDetails",
-          "pathName": "pages/groupbuy/groupDetails",
-          "query": "",
-          "scene": null
-        },
-        {
-          "id": -1,
-          "name": "pages/miaosha/msList",
-          "pathName": "pages/miaosha/msList",
-          "query": "",
-          "scene": null
-        },
-        {
-          "id": 11,
-          "name": "pages/groupbuy/groupDetails",
-          "pathName": "pages/groupbuy/groupDetails",
-          "query": "id=1&shopId=16&gjId=12",
-          "scene": null
-        },
-        {
-          "id": 12,
-          "name": "pages/groupbuy/groupDetails",
-          "pathName": "pages/groupbuy/groupDetails",
-          "query": "id=1&shopId=16&gjId=1",
-          "scene": null
-        },
-        {
-          "id": 13,
-          "name": "pages/groupbuy/groupDetails",
-          "pathName": "pages/groupbuy/groupDetails",
-          "query": "id=1&shopId=16&gjId=1",
-          "scene": null
-        },
-        {
-          "id": 14,
-          "name": "pages/groupbuy/groupDetails",
-          "pathName": "pages/groupbuy/groupDetails",
-          "query": "id=2&shopId=33&gjId=9",
-          "scene": null
-        },
-        {
-          "id": -1,
-          "name": "pages/payOrder/paySuccess",
-          "pathName": "pages/payOrder/paySuccess",
-          "query": "showModel=1",
-          "scene": null
-        },
-        {
-          "id": -1,
-          "name": "pages/miaosha/msList",
-          "pathName": "pages/miaosha/msList",
-          "query": "id=2&shopId=33&gjId=9",
-          "scene": null
-        },
-        {
-          "id": -1,
-          "name": "pages/customerCenter/customerCenter",
-          "pathName": "pages/shalong/shalongList",
-          "query": "id=2&shopId=33&gjId=9",
-          "scene": null
-        },
-        {
-          "id": -1,
-          "name": "pages/index/index",
-          "pathName": "pages/shalong/shalongList",
-          "query": "",
-          "scene": null
-        },
-        {
-          "id": -1,
-          "name": "pages/groupbuy/groupDetails",
-          "pathName": "pages/groupbuy/groupDetails",
-          "query": "id=1&shopId=16&gjId=15",
-          "scene": null
-        },
-        {
-          "id": 20,
-          "name": "pages/ads/showAdPage",
-          "pathName": "pages/ads/showAdPage",
-          "query": "pageCode=index",
-          "scene": null
-        },
-        {
-          "id": -1,
-          "name": "pages/shalong/shalongDetail",
-          "pathName": "pages/shalong/shalongDetail",
-          "query": "id=6",
-          "scene": null
-        },
-        {
-          "name": "pages/yuyue/showYyInfo",
-          "pathName": "pages/yuyue/showYyInfo",
-          "query": "id=3004",
-          "scene": null
-        }
-      ]
-    }
-  }
+	"description": "项目配置文件。",
+	"packOptions": {
+		"ignore": []
+	},
+	"setting": {
+		"urlCheck": false,
+		"es6": true,
+		"enhance": true,
+		"postcss": true,
+		"preloadBackgroundData": false,
+		"minified": true,
+		"newFeature": true,
+		"coverView": true,
+		"nodeModules": false,
+		"autoAudits": false,
+		"showShadowRootInWxmlPanel": true,
+		"scopeDataCheck": false,
+		"uglifyFileName": false,
+		"checkInvalidKey": true,
+		"checkSiteMap": true,
+		"uploadWithSourceMap": true,
+		"compileHotReLoad": false,
+		"useMultiFrameRuntime": true,
+		"useApiHook": true,
+		"useApiHostProcess": false,
+		"babelSetting": {
+			"ignore": [],
+			"disablePlugins": [],
+			"outputPath": ""
+		},
+		"enableEngineNative": false,
+		"bundle": false,
+		"useIsolateContext": true,
+		"useCompilerModule": true,
+		"userConfirmedUseCompilerModuleSwitch": false,
+		"userConfirmedBundleSwitch": false,
+		"packNpmManually": false,
+		"packNpmRelationList": [],
+		"minifyWXSS": true
+	},
+	"compileType": "miniprogram",
+	"libVersion": "1.9.98",
+	"appid": "wx3836ab3c1490ff29",
+	"projectname": "%E8%82%BD%E7%A0%94",
+	"isGameTourist": false,
+	"simulatorType": "wechat",
+	"simulatorPluginLibVersion": {},
+	"condition": {
+		"plugin": {
+			"list": []
+		},
+		"game": {
+			"list": []
+		},
+		"gamePlugin": {
+			"list": []
+		},
+		"miniprogram": {
+			"list": [
+				{
+					"id": -1,
+					"name": "pages/yuyue/yyInfo",
+					"pathName": "pages/yuyue/yyInfo",
+					"query": "model=1&id=10",
+					"scene": null
+				},
+				{
+					"id": -1,
+					"name": "pages/customerCenter/customerCenter",
+					"pathName": "pages/customerCenter/customerCenter",
+					"query": "",
+					"scene": null
+				},
+				{
+					"id": -1,
+					"name": "pages/yuyue/order",
+					"pathName": "pages/yuyue/order",
+					"query": "status=0",
+					"scene": null
+				},
+				{
+					"id": -1,
+					"name": "pages/service/service",
+					"pathName": "pages/service/service",
+					"query": "status=0",
+					"scene": null
+				},
+				{
+					"id": -1,
+					"name": "pages/logistics/logistics",
+					"pathName": "pages/logistics/logistics",
+					"query": "id=911",
+					"scene": null
+				},
+				{
+					"id": -1,
+					"name": "pages/yuyue/choseShop",
+					"pathName": "pages/yuyue/choseShop",
+					"query": "",
+					"scene": null
+				},
+				{
+					"id": -1,
+					"name": "pages/service/service2",
+					"pathName": "pages/service/service2",
+					"query": "",
+					"scene": null
+				},
+				{
+					"id": -1,
+					"name": "pages/shopCar/shopCar",
+					"pathName": "pages/shopCar/shopCar",
+					"query": "",
+					"scene": null
+				},
+				{
+					"id": 8,
+					"name": "pages/groupbuy/groupList",
+					"pathName": "pages/groupbuy/groupList",
+					"query": "",
+					"scene": null
+				},
+				{
+					"id": 9,
+					"name": "groupDetails",
+					"pathName": "pages/groupbuy/groupDetails",
+					"query": "",
+					"scene": null
+				},
+				{
+					"id": -1,
+					"name": "pages/miaosha/msList",
+					"pathName": "pages/miaosha/msList",
+					"query": "",
+					"scene": null
+				},
+				{
+					"id": 11,
+					"name": "pages/groupbuy/groupDetails",
+					"pathName": "pages/groupbuy/groupDetails",
+					"query": "id=1&shopId=16&gjId=12",
+					"scene": null
+				},
+				{
+					"id": 12,
+					"name": "pages/groupbuy/groupDetails",
+					"pathName": "pages/groupbuy/groupDetails",
+					"query": "id=1&shopId=16&gjId=1",
+					"scene": null
+				},
+				{
+					"id": 13,
+					"name": "pages/groupbuy/groupDetails",
+					"pathName": "pages/groupbuy/groupDetails",
+					"query": "id=1&shopId=16&gjId=1",
+					"scene": null
+				},
+				{
+					"id": 14,
+					"name": "pages/groupbuy/groupDetails",
+					"pathName": "pages/groupbuy/groupDetails",
+					"query": "id=2&shopId=33&gjId=9",
+					"scene": null
+				},
+				{
+					"id": -1,
+					"name": "pages/payOrder/paySuccess",
+					"pathName": "pages/payOrder/paySuccess",
+					"query": "showModel=1",
+					"scene": null
+				},
+				{
+					"id": -1,
+					"name": "pages/miaosha/msList",
+					"pathName": "pages/miaosha/msList",
+					"query": "id=2&shopId=33&gjId=9",
+					"scene": null
+				},
+				{
+					"id": -1,
+					"name": "pages/customerCenter/customerCenter",
+					"pathName": "pages/shalong/shalongList",
+					"query": "id=2&shopId=33&gjId=9",
+					"scene": null
+				},
+				{
+					"id": -1,
+					"name": "pages/index/index",
+					"pathName": "pages/shalong/shalongList",
+					"query": "",
+					"scene": null
+				},
+				{
+					"id": -1,
+					"name": "pages/groupbuy/groupDetails",
+					"pathName": "pages/groupbuy/groupDetails",
+					"query": "id=1&shopId=16&gjId=15",
+					"scene": null
+				},
+				{
+					"id": 20,
+					"name": "pages/ads/showAdPage",
+					"pathName": "pages/ads/showAdPage",
+					"query": "pageCode=index",
+					"scene": null
+				},
+				{
+					"id": -1,
+					"name": "pages/shalong/shalongDetail",
+					"pathName": "pages/shalong/shalongDetail",
+					"query": "id=6",
+					"scene": null
+				},
+				{
+					"name": "pages/yuyue/showYyInfo",
+					"pathName": "pages/yuyue/showYyInfo",
+					"query": "id=3004",
+					"scene": null
+				}
+			]
+		}
+	}
 }
\ No newline at end of file

--
Gitblit v1.9.1