935090232@qq.com
2020-12-02 2e7d9e3e849bda0dae16c1f0c9623df7113b9d0b
数据分析人头1
12 files added
2 files renamed
1 files deleted
49 files modified
64320 ■■■■■ changed files
zq-erp/src/main/java/com/matrix/core/tools/DateUtil.java 81 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/common/bean/SysUsers.java 6 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/common/service/impl/SysUsersServiceImpl.java 4 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/common/tools/ServiceUtil.java 6 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/action/AllottedInfoController.java 4 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/action/BeautiWorkFormController.java 14 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/action/CheckInfoController.java 4 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/action/CheckInfoDetailController.java 5 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/action/InstoreInfoController.java 4 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/action/MoneyCardUseController.java 4 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/action/OccupancyController.java 6 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/action/OnlinebookingController.java 6 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java 4 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/action/ProjServiceController.java 8 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/action/StoreInOutController.java 4 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/action/VipInfoController.java 10 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/bean/AchieveNew.java 6 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/bean/MoneyCardUse.java 4 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/bean/Onlinebooking.java 4 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/bean/ServiceRecord.java 6 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/bean/ServicesFlow.java 6 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/bean/ShoppingGoods.java 8 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/bean/SysAllottedInfo.java 8 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/bean/SysBeauticianState.java 12 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/bean/SysBedState.java 8 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/bean/SysInstoreInfo.java 8 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrder.java 6 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/bean/SysOutStore.java 4 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/bean/SysProjServices.java 12 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/bean/SysProjUse.java 4 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/bean/SysVipInfo.java 10 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/bean/SysWorktime.java 6 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/plugin/util/DateUtils.java 858 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/plugin/util/TimeUtils.java 7 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/pojo/AllotedAndInstored.java 6 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/pojo/ShoppingOrderVo.java 6 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/pojo/StatisticsVo.java 6 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/pojo/StoreInOutRecordVO.java 6 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/imp/MoneyCardUseServiceImpl.java 6 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/imp/ServiceRecordServiceImpl.java 2 ●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysBedInfoServiceImpl.java 6 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysCheckInfoServiceImpl.java 6 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java 6 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java 8 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjUseServiceImpl.java 12 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysWorkBeatuistaffServiceImpl.java 6 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/statistics/BusinessDataShowVo.java 6 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hiveErp/Vo/StatisticsParamVo.java 2 ●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hiveErp/Vo/StatisticsTimeDaoParam.java 2 ●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hiveErp/action/CustomerAnalysis.java 111 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hiveErp/action/ErpOrderController.java 4 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hiveErp/action/ErpVipInfoController.java 9 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hiveErp/dao/TjVipSumDao.java 16 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hiveErp/util/StatisticsTimeUtil.java 106 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/YuyueAction.java 4 ●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml 32 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/static/js/systools/ChartsUtils.js 121 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/static/plugin/StringUtil.js 437 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/static/plugin/dateformat.js 297 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/static/plugin/echarts/echarts.all.js 61045 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/static/plugin/echarts/essos.js 516 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/static/plugin/echarts/macarons.js 198 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/static/plugin/moment.min.js 1 ●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/hive-erp/analysis/customerFlow.html 190 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/core/tools/DateUtil.java
@@ -17,6 +17,19 @@
 * @createTime 2014.08.30
 */
public class DateUtil {
    private final static int[] dayArr = new int[] { 20, 19, 21, 20, 21, 22, 23,
            23, 23, 24, 23, 22 };
    private final static String[] constellationArr = new String[] { "摩羯座",
            "水瓶座", "双鱼座", "白羊座", "金牛座", "双子座", "巨蟹座", "狮子座", "处女座", "天秤座",
            "天蝎座", "射手座", "摩羯座" };
    public static final String DATE_FORMAT_STS = "yyyy-MM-dd'T'HH:mm:ss";
    public static final String DATE_FORMAT_ST = "yyyy-MM-dd'T'HH:mm";
    public static final String HH_mm = "HH:mm";
    public static final String HHmm = "HHmm";
    public static final String MONTH = "yyyy-MM";
@@ -24,11 +37,12 @@
    public static final String DATE_FORMAT_MONGO = "yyyy-MM-dd'T'HH:mm:ss.SSS";
    public static final String DATE_FORMAT_STS = "yyyy-MM-dd'T'HH:mm:ss";
    public static final String DATE_FORMAT_MM = "yyyy-MM-dd HH:mm";
    public static final String DATE_FORMAT_HH = "yyyy-MM-dd HH";
    public static final String DATE_FORMAT_DD = "yyyy-MM-dd";
@@ -94,6 +108,34 @@
    }
    /**
     * Java通过生日计算星座
     *
     * @param month
     * @param day
     * @return
     */
    public static String getConstellation(int month, int day) {
        return day < dayArr[month - 1] ? constellationArr[month - 1]
                : constellationArr[month];
    }
    /**
     *
     * @Title: getNextNMinute  获取date之后N分钟的时间
     * @Description: TODO
     * @author:罗凯
     * @param date
     * @return
     * Date    返回类型
     * @date 2016年8月3日 下午2:48:51
     * @throws
     */
    public static Date getNextNMinute(Date date,int n){
        return new Date(date.getTime()+(n*60*1000));
    }
    /**
     * 返回月份
     * 
     * @param date
@@ -146,6 +188,14 @@
        return null;
    }
 
    /**
     * 获取一个编码
     * 获取一个当前时间并且加入了四位的随机字母
     * @return
     */
    public static String getTimeCode() {
        return dateToString(new Date(), "yyyyMMddssSSS")+StringUtils.getRandomString(4);
    }
    /**
     * 判断给定的日期是一周中的第几天,注意:按照中国的习惯,周日是第七天
@@ -354,7 +404,36 @@
        }
        return currentDate.after(referenceDate);
    }
    public static long getDifTimeMin(Date beginTime,Date endTime){
        return (endTime.getTime()-beginTime.getTime())/1000/ 60;
    }
    public static List<Date> getFutureDay(Date date, int start,int end){
        List<Date> dates=new ArrayList<Date>();
        for (int i = 0; i < end-start; i++) {
            dates.add(DateUtil.nextNDate(date,i));
        }
        return dates;
    }
    /**
     * 字符串转日期 如果转换失败就返回一个当前时间date
     *
     * @param dateStr
     * @param format
     * @return
     */
    public static Date stringToDateNew(String dateStr, String format) {
        if (StringUtils.isBlank(dateStr) || StringUtils.isBlank(format)) {
            return new Date();
        }
        DateFormat fmt = new SimpleDateFormat(format);
        try {
            return fmt.parse(dateStr);
        } catch (ParseException e) {
        }
        return new Date();
    }
    /**
     * 判断currentDate是否在startDate和endDate之间,不包括startDate和endDate
     * 
zq-erp/src/main/java/com/matrix/system/common/bean/SysUsers.java
@@ -2,7 +2,7 @@
import com.matrix.core.anotations.Extend;
import com.matrix.core.pojo.EntityDTO;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@@ -170,7 +170,7 @@
    /**
     * 生日
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD)
    private Date suBirthday;
    /**
@@ -202,7 +202,7 @@
    /**
     * 入职时间
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD)
    private Date entryDate;
    /**
     * 紧急联系电话
zq-erp/src/main/java/com/matrix/system/common/service/impl/SysUsersServiceImpl.java
@@ -20,7 +20,7 @@
import com.matrix.system.hive.bean.SysShopInfo;
import com.matrix.system.hive.dao.SysShopInfoDao;
import com.matrix.system.hive.plugin.util.CollectionUtils;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -253,7 +253,7 @@
        sysProjServices.setStartTime(sysProjServices.getStartTime());
        sysProjServices
                .setEndTime(DateUtils.getNextNMinute(sysProjServices.getStartTime(), sysProjServices.getTotalTime()));
                .setEndTime(DateUtil.getNextNMinute(sysProjServices.getStartTime(), sysProjServices.getTotalTime()));
        return sysUsersDao.findByCodeBeaStateShopCount(shopId, sysProjServices, panBanCodes);
    }
zq-erp/src/main/java/com/matrix/system/common/tools/ServiceUtil.java
@@ -2,7 +2,7 @@
import com.matrix.core.constance.MatrixConstance;
import com.matrix.system.common.dao.UtilDao;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -166,11 +166,11 @@
            int s=Integer.parseInt(max);
            s=s+1;
            if(s>=1000){
                return DateUtils.getTimeCode();
                return DateUtil.getTimeCode();
            }
            return s>=10?(s>=100?s+"":"00"+s):"000"+s; // 计算 转型
        }catch(Exception e){
            return DateUtils.getTimeCode();
            return DateUtil.getTimeCode();
        }
zq-erp/src/main/java/com/matrix/system/hive/action/AllottedInfoController.java
@@ -17,7 +17,7 @@
import com.matrix.system.hive.bean.SysAllotDetail;
import com.matrix.system.hive.bean.SysAllottedInfo;
import com.matrix.system.hive.dao.SysAllotDetailDao;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.service.SysAllottedInfoService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
@@ -317,7 +317,7 @@
                temp.add(item.getAllottedOutstoreName());
                temp.add(item.getAllottedInstoreName());
                temp.add(item.getCheckStatus());
                temp.add(DateUtils.dateToString(item.getAllottedDate(), DateUtils.DATE_FORMAT_MM));
                temp.add(DateUtil.dateToString(item.getAllottedDate(), DateUtil.DATE_FORMAT_MM));
                temp.add(item.getMakingManName());
                temp.add(item.getAppManName());
                temp.add(item.getAllottedRemark());
zq-erp/src/main/java/com/matrix/system/hive/action/BeautiWorkFormController.java
@@ -9,7 +9,7 @@
import com.matrix.system.hive.bean.SysBeauticianState;
import com.matrix.system.hive.bean.SysWorkBeatuistaff;
import com.matrix.system.hive.bean.SysWorktime;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.pojo.BeautiWorkForm;
import com.matrix.system.hive.service.SysWorkBeatuistaffService;
import com.matrix.system.hive.service.SysWorktimeService;
@@ -54,7 +54,7 @@
        if (strDate == null || strDate.equals("")) {
            date = new Date();
        } else {
            date = DateUtils.stringToDate(strDate.toString(), "yyyy-MM-dd");
            date = DateUtil.stringToDate(strDate.toString(), "yyyy-MM-dd");
        }
        result.putInMap("dateTime", date);
@@ -110,7 +110,7 @@
        if (strDate == null || strDate.equals("")) {
            date = new Date();
        } else {
            date = DateUtils.stringToDate(strDate, "yyyy-MM-dd");
            date = DateUtil.stringToDate(strDate, "yyyy-MM-dd");
        }
        WebUtil.getRequest().setAttribute("dateTime", date);
@@ -168,7 +168,7 @@
        int dateForm = Integer.parseInt(strDate);
        int curTime = Integer.parseInt(DateUtils.dateToString(new Date(), "yyyyMMdd"));
        int curTime = Integer.parseInt(DateUtil.dateToString(new Date(), "yyyyMMdd"));
        if (curTime > dateForm) {
            return new AjaxResult(AjaxResult.STATUS_FAIL, "请选择大于当前时间下排班!");
@@ -188,7 +188,7 @@
        int dateForm = Integer.parseInt(strDate);
        int curTime = Integer.parseInt(DateUtils.dateToString(new Date(), "yyyyMMdd"));
        int curTime = Integer.parseInt(DateUtil.dateToString(new Date(), "yyyyMMdd"));
        if (curTime > dateForm) {
            return new AjaxResult(AjaxResult.STATUS_FAIL, "请选择大于当前时间下排班!");
@@ -204,7 +204,7 @@
    AjaxResult getCurrentWorks() {
        return new AjaxResult(AjaxResult.STATUS_SUCCESS,
                sysWorkBeatuistaffService.findByDateStr(
                        DateUtils.dateToString(new Date(), "yyyyMMdd"), getMe().getShopId()), 0);
                        DateUtil.dateToString(new Date(), "yyyyMMdd"), getMe().getShopId()), 0);
    }
@@ -234,7 +234,7 @@
    public @ResponseBody
    AjaxResult getPaiBanBeauticianList(@RequestBody SysBeauticianState sysBeauticianState) {
        // 根据时间获取一段排班码
        String panBanCodes = DateUtils.dateToString(sysBeauticianState.getBeginTime(),DateUtils.DATE_FORMAT_NO_SPLITE_DD);
        String panBanCodes = DateUtil.dateToString(sysBeauticianState.getBeginTime(),DateUtil.DATE_FORMAT_NO_SPLITE_DD);
        // 获取登陆的用户
        SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
        List<SysUsers> staffs=new ArrayList<>();
zq-erp/src/main/java/com/matrix/system/hive/action/CheckInfoController.java
@@ -11,7 +11,7 @@
import com.matrix.system.common.tools.ResponseHeadUtil;
import com.matrix.system.hive.action.util.QueryUtil;
import com.matrix.system.hive.bean.SysCheckInfo;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.service.CodeService;
import com.matrix.system.hive.service.SysCheckDetailService;
import com.matrix.system.hive.service.SysCheckInfoService;
@@ -211,7 +211,7 @@
                temp.add(item.getCheckType());
                temp.add(item.getCheckNo());
                //时间转为字符串
                String strDate = DateUtils.dateToString(item.getCheckDate(), DateUtils.DATE_FORMAT_DD);
                String strDate = DateUtil.dateToString(item.getCheckDate(), DateUtil.DATE_FORMAT_DD);
                temp.add(strDate);
                temp.add(item.getMakingManName());
                temp.add(item.getAppManName());
zq-erp/src/main/java/com/matrix/system/hive/action/CheckInfoDetailController.java
@@ -11,9 +11,10 @@
import com.matrix.core.pojo.AjaxResult;
import com.matrix.core.pojo.PaginationVO;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.bean.SysCheckDetail;
import com.matrix.system.hive.bean.SysCheckInfo;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.system.hive.plugin.util.ExcelUtil;
import com.matrix.system.hive.service.CodeService;
import com.matrix.system.hive.service.SysCheckDetailService;
@@ -102,7 +103,7 @@
        temp1.add(checkInfo.getCheckType());
        temp1.add(checkInfo.getCheckNo());
        // 时间转为字符串
        String strDate = DateUtils.dateToString(checkInfo.getCheckDate(), DateUtils.DATE_FORMAT_DD);
        String strDate = DateUtil.dateToString(checkInfo.getCheckDate(), DateUtil.DATE_FORMAT_DD);
        temp1.add(strDate);
        temp1.add(checkInfo.getMakingManName());
        temp1.add(checkInfo.getAppManName());
zq-erp/src/main/java/com/matrix/system/hive/action/InstoreInfoController.java
@@ -19,7 +19,7 @@
import com.matrix.system.hive.bean.SysInstoreDetail;
import com.matrix.system.hive.bean.SysInstoreInfo;
import com.matrix.system.hive.dao.SysInstoreDetailDao;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.plugin.util.MoneyUtil;
import com.matrix.system.hive.service.CodeService;
import com.matrix.system.hive.service.SysInstoreInfoService;
@@ -290,7 +290,7 @@
            for (SysInstoreInfo item : dataList) {
                List<Object> temp = new ArrayList<>();
                temp.add(item.getInstoreId());
                temp.add(DateUtils.dateToString(item.getInstoreDate(), DateUtils.DATE_FORMAT_MM));
                temp.add(DateUtil.dateToString(item.getInstoreDate(), DateUtil.DATE_FORMAT_MM));
                temp.add(item.getSumall());
                temp.add(item.getMakingmanName());
                temp.add(item.getAppmanName());
zq-erp/src/main/java/com/matrix/system/hive/action/MoneyCardUseController.java
@@ -12,7 +12,7 @@
import com.matrix.system.hive.bean.*;
import com.matrix.system.hive.dao.MoneyCardUseDao;
import com.matrix.system.hive.dao.MoneyCardUseFlowDao;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.pojo.CzXkVo;
import com.matrix.system.hive.service.*;
import org.springframework.beans.factory.annotation.Autowired;
@@ -305,7 +305,7 @@
            case Dictionary.TAOCAN_STATUS_DJ:
                MoneyCardUseFreeze freeze = new MoneyCardUseFreeze();
                freeze = moneyCardUseFreezeService.findByMoneyCardUseId(proj.getId());
                proj.setFailTime(DateUtils.nextNDate(failTime, freeze.getGapDays()));
                proj.setFailTime(DateUtil.nextNDate(failTime, freeze.getGapDays()));
                break;
            default:
                return new AjaxResult(AjaxResult.STATUS_FAIL, "请选择无效或者冻结的充值卡");
zq-erp/src/main/java/com/matrix/system/hive/action/OccupancyController.java
@@ -9,7 +9,7 @@
import com.matrix.system.hive.bean.SysWorkBeatuistaff;
import com.matrix.system.hive.dao.SysBeauticianStateDao;
import com.matrix.system.hive.plugin.util.CollectionUtils;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.service.SysWorkBeatuistaffService;
import com.matrix.system.hive.service.SysWorktimeService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -52,10 +52,10 @@
    public @ResponseBody
    AjaxResult showCwzyList(String timeStr) {
        if (timeStr == null || timeStr.equals("")) {
            timeStr = DateUtils.dateToString(new Date(), "yyyy-MM-dd");
            timeStr = DateUtil.dateToString(new Date(), "yyyy-MM-dd");
        }
        // 查询上班下班的最大时间段
        Date currentDate = DateUtils.stringToDate(timeStr, DateUtils.DATE_FORMAT_DD);
        Date currentDate = DateUtil.stringToDate(timeStr, DateUtil.DATE_FORMAT_DD);
        // 把日期调整为当前查询日期
        Long shopId = 16L; //getMe().getShopId();
zq-erp/src/main/java/com/matrix/system/hive/action/OnlinebookingController.java
@@ -12,7 +12,7 @@
import com.matrix.system.hive.bean.SysShopInfo;
import com.matrix.system.hive.dao.OnlinebookingDao;
import com.matrix.system.hive.dao.SysShopInfoDao;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.plugin.util.ExcelUtil;
import com.matrix.system.hive.service.OnlinebookingService;
import com.matrix.system.shopXcx.bean.ShopProduct;
@@ -135,14 +135,14 @@
              for(Onlinebooking obj:dataList){
                  List<Object> temp = new ArrayList<>();
                  temp.add(obj.getVipInfo().getVipName());
                  String strDate= DateUtils.dateToString(obj.getTime(), DateUtils.DATE_FORMAT_SS);
                  String strDate= DateUtil.dateToString(obj.getTime(), DateUtil.DATE_FORMAT_SS);
                  temp.add(strDate);
                  temp.add(obj.getStatus());
                  //时间转为字符串 
                  temp.add(obj.getReason());
                  temp.add(obj.getRemark());
                  temp.add(obj.getShopName());
                  String crtDate=DateUtils.dateToString(obj.getCreateTime(), DateUtils.DATE_FORMAT_SS);
                  String crtDate=DateUtil.dateToString(obj.getCreateTime(), DateUtil.DATE_FORMAT_SS);
                  temp.add(crtDate);
                  list.add(temp);
              }
zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java
@@ -23,7 +23,7 @@
import com.matrix.system.hive.dao.SysOrderDao;
import com.matrix.system.hive.dao.SysOrderItemDao;
import com.matrix.system.hive.dao.SysShopInfoDao;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.pojo.ShoppingCarItem;
import com.matrix.system.hive.pojo.ShoppingCarItemsVo;
import com.matrix.system.hive.service.AchieveNewService;
@@ -472,7 +472,7 @@
                temp.add(item.getOrderNo());
                temp.add(item.getVipName());
                temp.add(item.getVipPhone());
                temp.add(DateUtils.dateToString(item.getOrderTime(), DateUtils.DATE_FORMAT_MM));
                temp.add(DateUtil.dateToString(item.getOrderTime(), DateUtil.DATE_FORMAT_MM));
                temp.add(item.getTotal());
                temp.add(item.getZkTotal());
                temp.add(item.getCashPay());
zq-erp/src/main/java/com/matrix/system/hive/action/ProjServiceController.java
@@ -18,7 +18,7 @@
import com.matrix.system.constance.Dictionary;
import com.matrix.system.hive.bean.*;
import com.matrix.system.hive.dao.*;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.pojo.TaoCanVo;
import com.matrix.system.hive.service.*;
import org.apache.commons.collections.CollectionUtils;
@@ -254,9 +254,9 @@
            SysBedState sysBedState = sysBedStateDao.selectBySerIdAndBedId(projServices.getBedId(), projServices.getId());
            if (sysBedState != null && sysBedState.getStartTime() != null) {
                dateTime = DateUtils.dateToString(sysBedState.getStartTime(), DateUtils.DATE_FORMAT_DD);
                dateTime = DateUtil.dateToString(sysBedState.getStartTime(), DateUtil.DATE_FORMAT_DD);
            } else {
                dateTime = DateUtils.dateToString(projServices.getYyTime(), DateUtils.DATE_FORMAT_DD);
                dateTime = DateUtil.dateToString(projServices.getYyTime(), DateUtil.DATE_FORMAT_DD);
            }
        }
        WebUtil.getRequest().setAttribute("dateTime", dateTime);
@@ -413,7 +413,7 @@
        // 根据id查到对应的订单信息
        SysProjServices sysProjServices = new SysProjServices();
        sysProjServices.setState(Dictionary.SERVICE_STATU_FWWC);
        sysProjServices.setBeginTime(DateUtils.stringToDate("2019-03-01", DateUtils.DATE_FORMAT_DD));
        sysProjServices.setBeginTime(DateUtil.stringToDate("2019-03-01", DateUtil.DATE_FORMAT_DD));
        List<SysProjServices> serviceOrders = sysProjServicesService.findByModel(sysProjServices);
        System.out.println("共找到服务单" + serviceOrders.size());
        for (SysProjServices itemService : serviceOrders) {
zq-erp/src/main/java/com/matrix/system/hive/action/StoreInOutController.java
@@ -11,7 +11,7 @@
import com.matrix.system.hive.action.util.QueryUtil;
import com.matrix.system.hive.bean.SysCheckInfo;
import com.matrix.system.hive.dao.SysStoreInfoDao;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.pojo.StoreInOutRecordVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@@ -88,7 +88,7 @@
        if (dataList.size() > 0) {
            for (StoreInOutRecordVO item : dataList) {
                List<Object> temp = new ArrayList<>();
                String strDate = DateUtils.dateToString(item.getCreateTime(), DateUtils.DATE_FORMAT_MM);
                String strDate = DateUtil.dateToString(item.getCreateTime(), DateUtil.DATE_FORMAT_MM);
                temp.add(strDate);
                temp.add(item.getCode());
                temp.add(item.getName());
zq-erp/src/main/java/com/matrix/system/hive/action/VipInfoController.java
@@ -23,7 +23,7 @@
import com.matrix.system.hive.bean.*;
import com.matrix.system.hive.dao.MoneyCardUseDao;
import com.matrix.system.hive.dao.VipAnswerDao;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.pojo.RegisterInfo;
import com.matrix.system.hive.service.*;
import org.springframework.beans.factory.annotation.Autowired;
@@ -343,7 +343,7 @@
    public @ResponseBody
    AjaxResult register(RegisterInfo vipInfo) {
        vipInfo.setBirthday1(DateUtils.stringToDate(vipInfo.getVoBirthday(), "yyyy-MM-dd"));
        vipInfo.setBirthday1(DateUtil.stringToDate(vipInfo.getVoBirthday(), "yyyy-MM-dd"));
        vipInfo.setVipState(Dictionary.VIP_STATE_HY);
        vipInfo.setStaffId(getMe().getSuId());
        vipInfo.setShopId(getMe().getShopId());
@@ -452,15 +452,13 @@
        int month = c.get(Calendar.MONTH) + 1;
        //获取日
        int day = c.get(Calendar.DATE);
        //生肖
        String sx = DateUtils.getYear(year);
        //星座
        String xz = DateUtils.getConstellation(month, day);
        String xz = DateUtil.getConstellation(month, day);
        SysVipInfo vip = new SysVipInfo();
        vip.setConstell(xz);
        vip.setAnimalSign(sx);
        List<SysVipInfo> vipList = new ArrayList<SysVipInfo>();
        vipList.add(vip);
        return new AjaxResult(AjaxResult.STATUS_SUCCESS, vipList, 0);
zq-erp/src/main/java/com/matrix/system/hive/bean/AchieveNew.java
@@ -2,7 +2,7 @@
import com.fasterxml.jackson.annotation.JsonFormat;
import com.matrix.core.anotations.Extend;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
@@ -233,14 +233,14 @@
    /**
     * 开始时间
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
    private Date  beginTime;
            
    
    /**
     * 结束时间
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
    private Date  endTime;
zq-erp/src/main/java/com/matrix/system/hive/bean/MoneyCardUse.java
@@ -1,7 +1,7 @@
package com.matrix.system.hive.bean;
import com.matrix.core.anotations.Extend;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.plugin.util.MoneyUtil;
import com.matrix.system.hive.pojo.MoneyCardUserVo;
import org.springframework.format.annotation.DateTimeFormat;
@@ -67,7 +67,7 @@
    /**
     * 失效时间
     */
    @DateTimeFormat(pattern= DateUtils.DATE_FORMAT_DD)
    @DateTimeFormat(pattern= DateUtil.DATE_FORMAT_DD)
    private Date  failTime;
            
    
zq-erp/src/main/java/com/matrix/system/hive/bean/Onlinebooking.java
@@ -4,7 +4,7 @@
import com.matrix.system.common.bean.EntityDTOExt;
import com.matrix.system.common.bean.SysUsers;
import com.matrix.system.constance.Dictionary;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.shopXcx.bean.ShopProduct;
import org.springframework.format.annotation.DateTimeFormat;
@@ -44,7 +44,7 @@
    /**
     * 预约时间
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_ST)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_ST)
    private Date time;
    /**
     * 客户备注
zq-erp/src/main/java/com/matrix/system/hive/bean/ServiceRecord.java
@@ -1,6 +1,6 @@
package com.matrix.system.hive.bean;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
@@ -35,12 +35,12 @@
    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD)
    private Date  createTime;
    /**
     * 下次跟进时间
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD)
    private Date  followTime;
    /**
     * 内容
zq-erp/src/main/java/com/matrix/system/hive/bean/ServicesFlow.java
@@ -3,7 +3,7 @@
import java.io.Serializable;
import java.util.Date;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import org.springframework.format.annotation.DateTimeFormat;
/**
@@ -82,12 +82,12 @@
    /**
     * 起始时间
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
    private Date beginTime;
    /**
     * 结束时间
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
    private Date endTime; 
zq-erp/src/main/java/com/matrix/system/hive/bean/ShoppingGoods.java
@@ -1,7 +1,7 @@
package com.matrix.system.hive.bean;
import com.matrix.core.anotations.Extend;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
@@ -203,7 +203,7 @@
    /**
     * 下架时间
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD)
    private Date saleOffTime;
    /**
@@ -362,10 +362,10 @@
    /**
     * 扩展字段
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD)
    private Date startTime;
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD)
    private Date endTime;
zq-erp/src/main/java/com/matrix/system/hive/bean/SysAllottedInfo.java
@@ -1,6 +1,6 @@
package com.matrix.system.hive.bean;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
@@ -68,7 +68,7 @@
    /**
     * 调拨日期
     */
    @DateTimeFormat(pattern= DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern= DateUtil.DATE_FORMAT_MM)
    private Date  allottedDate;
            
    
@@ -150,9 +150,9 @@
     * 审核人
     */
    private String appManName;
    @DateTimeFormat(pattern=DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern=DateUtil.DATE_FORMAT_MM)
    private Date startTime;
    @DateTimeFormat(pattern=DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern=DateUtil.DATE_FORMAT_MM)
    private Date endTime;     
         
    public Long getId() {
zq-erp/src/main/java/com/matrix/system/hive/bean/SysBeauticianState.java
@@ -2,7 +2,7 @@
import com.matrix.core.anotations.Extend;
import com.matrix.system.common.bean.SysUsers;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
@@ -58,14 +58,14 @@
    /**
     * 服务开始时间
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
    private Date beginTime;
    /**
     * 服务结束时间
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
    private Date endTime;
@@ -92,13 +92,13 @@
     * 表单服务开始时间
     */
    @Extend
    @DateTimeFormat(pattern = DateUtils.HH_mm)
    @DateTimeFormat(pattern = DateUtil.HH_mm)
    private Date beginTimeForm;
    /**
     * 服务结束时间
     */
    @Extend
    @DateTimeFormat(pattern = DateUtils.HH_mm)
    @DateTimeFormat(pattern = DateUtil.HH_mm)
    private Date endTimeForm;
@@ -114,7 +114,7 @@
    @Extend
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_SS)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_SS)
    private Date createTime;
    /**
zq-erp/src/main/java/com/matrix/system/hive/bean/SysBedState.java
@@ -3,7 +3,7 @@
import java.io.Serializable;
import java.util.Date;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import org.springframework.format.annotation.DateTimeFormat;
/**
@@ -30,14 +30,14 @@
    /**
     * 开始时间
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
    private Date  startTime;
            
    
    /**
     * 结束时间
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
    private Date  endTime;
    
@@ -58,7 +58,7 @@
    /**
     * 开始时间
     */
    @DateTimeFormat(pattern = DateUtils.HH_mm)
    @DateTimeFormat(pattern = DateUtil.HH_mm)
    private Date  startTimeForm;
    
    
zq-erp/src/main/java/com/matrix/system/hive/bean/SysInstoreInfo.java
@@ -2,7 +2,7 @@
import com.fasterxml.jackson.annotation.JsonFormat;
import com.matrix.core.pojo.EntityDTO;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
@@ -28,7 +28,7 @@
    /**
     * 入库日期
     */
    @DateTimeFormat(pattern= DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern= DateUtil.DATE_FORMAT_MM)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private Date  instoreDate;
            
@@ -126,13 +126,13 @@
     * 开始时间
     */
    
    @DateTimeFormat(pattern=DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern=DateUtil.DATE_FORMAT_MM)
    private Date startTime;
    
    /**
     * 结束时间
     */
    @DateTimeFormat(pattern=DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern=DateUtil.DATE_FORMAT_MM)
    private Date endTime;
    private Long shopId;
zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrder.java
@@ -1,6 +1,6 @@
package com.matrix.system.hive.bean;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
@@ -149,10 +149,10 @@
    /**
     * 表单搜索条件(开始时间结束时间)
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
    private Date beginTimeVo;
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
    private Date endTimeVo;
zq-erp/src/main/java/com/matrix/system/hive/bean/SysOutStore.java
@@ -1,7 +1,7 @@
package com.matrix.system.hive.bean;
import com.matrix.core.pojo.EntityDTO;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
@@ -34,7 +34,7 @@
    /**
     * 出库时间
     */
    @DateTimeFormat(pattern= DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern= DateUtil.DATE_FORMAT_MM)
    private Date time;
    /**
zq-erp/src/main/java/com/matrix/system/hive/bean/SysProjServices.java
@@ -1,7 +1,7 @@
package com.matrix.system.hive.bean;
import com.matrix.core.anotations.Extend;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
@@ -154,7 +154,7 @@
    /**
     * 预约时间
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
    private Date yyTime;
    /**
@@ -170,12 +170,12 @@
    /**
     * 开始时间
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
    private Date startTime;
    /**
     * 结束时间
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
    private Date endTime;
    /**
     * 超时时间
@@ -287,13 +287,13 @@
    /**
     * 扩展属性-预约查询开始时间
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
    private Date beginTime;
    /**
     * 扩展属性-预约查询结束时间
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
    private Date closureTime;
    /**
zq-erp/src/main/java/com/matrix/system/hive/bean/SysProjUse.java
@@ -2,7 +2,7 @@
import com.fasterxml.jackson.annotation.JsonFormat;
import com.matrix.core.anotations.Extend;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
@@ -44,7 +44,7 @@
    /**
     * 有效期
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD)
    private Date failTime;
    /**
     * 套餐id
zq-erp/src/main/java/com/matrix/system/hive/bean/SysVipInfo.java
@@ -1,6 +1,6 @@
package com.matrix.system.hive.bean;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.plugin.util.ExcelAnnotation;
import org.springframework.format.annotation.DateTimeFormat;
@@ -91,7 +91,7 @@
    /**
     * 生日
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD)
    private Date birthday1;
 
    /**
@@ -134,7 +134,7 @@
    /**
     * 入会时间
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD)
    private Date inDate;
    /**
     * 注册时间
@@ -284,12 +284,12 @@
    /**
     * 起始时间
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD)
    private Date startTime;
    /**
     * 结束时间
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD)
    private Date endTime; 
    /**
     * 排名方式(会员消费统计条件)
zq-erp/src/main/java/com/matrix/system/hive/bean/SysWorktime.java
@@ -3,7 +3,7 @@
import java.io.Serializable;
import java.util.Date;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import org.springframework.format.annotation.DateTimeFormat;
/**
@@ -26,10 +26,10 @@
    private String name;
    
    @DateTimeFormat(pattern = DateUtils.HH_mm)
    @DateTimeFormat(pattern = DateUtil.HH_mm)
    private Date  startTime;
    
    @DateTimeFormat(pattern = DateUtils.HH_mm)
    @DateTimeFormat(pattern = DateUtil.HH_mm)
    private Date  endTime;
    
zq-erp/src/main/java/com/matrix/system/hive/plugin/util/DateUtils.java
File was deleted
zq-erp/src/main/java/com/matrix/system/hive/plugin/util/TimeUtils.java
@@ -1,5 +1,6 @@
package com.matrix.system.hive.plugin.util;
import com.matrix.core.tools.DateUtil;
import com.matrix.core.tools.StringUtils;
import java.text.SimpleDateFormat;
@@ -337,8 +338,8 @@
        Calendar c = Calendar.getInstance();
        try {
            int dataInt = StringUtils.stringToInt(data);
            int month = DateUtils.getMonth(createTime);
            int year = DateUtils.getYear(createTime);
            int month = DateUtil.getMonth(createTime);
            int year = DateUtil.getYear(createTime);
            if (dataInt > 12 - month && dataInt < 12) {
                month += dataInt;
                year += 1;
@@ -437,7 +438,7 @@
        String checkrule = "1";
        
        Date resultDate = TimeUtils.getEndYearTime(data, checkrule);
        String time = DateUtils.dateToString(resultDate, DateUtils.DATE_FORMAT_SS);
        String time = DateUtil.dateToString(resultDate, DateUtil.DATE_FORMAT_SS);
        System.out.println(time);
    }
}
zq-erp/src/main/java/com/matrix/system/hive/pojo/AllotedAndInstored.java
@@ -2,7 +2,7 @@
import java.util.Date;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import org.springframework.format.annotation.DateTimeFormat;
@@ -52,12 +52,12 @@
    /**
     * 开始时间
     */
    @DateTimeFormat(pattern= DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern= DateUtil.DATE_FORMAT_MM)
    private Date startTime;
    /**
     * 结束时间
     */
    @DateTimeFormat(pattern=DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern=DateUtil.DATE_FORMAT_MM)
    private Date endTime;
    
zq-erp/src/main/java/com/matrix/system/hive/pojo/ShoppingOrderVo.java
@@ -2,7 +2,7 @@
import java.util.Date;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import org.springframework.format.annotation.DateTimeFormat;
@@ -16,12 +16,12 @@
    /**
     * 开始时间
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
    private Date startTime =new Date();
    /**
     * 结束时间
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
    private Date endTime;
    
    /**
zq-erp/src/main/java/com/matrix/system/hive/pojo/StatisticsVo.java
@@ -2,7 +2,7 @@
import java.util.Date;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import org.springframework.format.annotation.DateTimeFormat;
@@ -17,13 +17,13 @@
    /**
     * 开始时间
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
    private Date beginTime; 
    
    /**
     * 结束时间
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
    private Date endTime; 
    
    /**
zq-erp/src/main/java/com/matrix/system/hive/pojo/StoreInOutRecordVO.java
@@ -2,7 +2,7 @@
import com.fasterxml.jackson.annotation.JsonFormat;
import com.matrix.core.pojo.EntityDTO;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@@ -69,10 +69,10 @@
    /**
     * 用于对查询的参数
     */
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
    private Date beginTime;
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
    private Date endTime;
    private Long shopId;
zq-erp/src/main/java/com/matrix/system/hive/service/imp/MoneyCardUseServiceImpl.java
@@ -8,7 +8,7 @@
import com.matrix.system.constance.Dictionary;
import com.matrix.system.hive.bean.*;
import com.matrix.system.hive.dao.*;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.plugin.util.MoneyUtil;
import com.matrix.system.hive.service.MoneyCardUseService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -208,7 +208,7 @@
            content.append("获取会员" + getObj.getVipInfo().getVipName() + "的" + getObj.getCardName())
                    .append(",余次:" + getObj.getLastCountName())
                    .append(",本金余额:" + getObj.getRealMoney())
                    .append(",有效期:" + DateUtils.dateToString(getObj.getFailTime(), DateUtils.DATE_FORMAT_MM))
                    .append(",有效期:" + DateUtil.dateToString(getObj.getFailTime(), DateUtil.DATE_FORMAT_MM))
                    .append(",是否赠送:" + getObj.getSourceName());
        }
    }
@@ -252,7 +252,7 @@
                    .append(vipCard.getCardName())
                    .append(",余次:" + vipCard.getLastCountName())
                    .append(",本金余额:" + vipCard.getRealMoney())
                    .append(",有效期:" + DateUtils.dateToString(vipCard.getFailTime(), DateUtils.DATE_FORMAT_MM))
                    .append(",有效期:" + DateUtil.dateToString(vipCard.getFailTime(), DateUtil.DATE_FORMAT_MM))
                    .append(",是否赠送:" + vipCard.getSourceName());
        } else {
            content.append(realObj.getCardName() + "退款现金¥" + moneyCardUse.getReturnMonery() + "");
zq-erp/src/main/java/com/matrix/system/hive/service/imp/ServiceRecordServiceImpl.java
@@ -26,7 +26,7 @@
    @Override
    public int add(ServiceRecord serviceRecord){
//        Date now=new Date();
//        if(DateUtils.isAffterDate( serviceRecord.getCreateTime(),now)){
//        if(DateUtil.isAffterDate( serviceRecord.getCreateTime(),now)){
//            throw new GlobleException("跟进时间必须大于当前时间");
//        }
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysBedInfoServiceImpl.java
@@ -6,7 +6,7 @@
import com.matrix.system.hive.bean.SysBedInfo;
import com.matrix.system.hive.bean.SysProjServices;
import com.matrix.system.hive.dao.SysBedInfoDao;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.service.SysBedInfoService;
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;
@@ -85,14 +85,14 @@
    @Override
    public int findFreeBedCount(SysProjServices sysProjServices) {
        sysProjServices.setEndTime(DateUtils.getNextNMinute(sysProjServices.getStartTime(), sysProjServices.getTotalTime()));
        sysProjServices.setEndTime(DateUtil.getNextNMinute(sysProjServices.getStartTime(), sysProjServices.getTotalTime()));
        
        return sysBedInfoDao.findFreeBedCount(sysProjServices);
    }
    //查询空闲的床位
    @Override
    public List<SysBedInfo> findFreeBed(SysProjServices sysProjServices) {
        sysProjServices.setEndTime(DateUtils.getNextNMinute(sysProjServices.getStartTime(), sysProjServices.getTotalTime()));
        sysProjServices.setEndTime(DateUtil.getNextNMinute(sysProjServices.getStartTime(), sysProjServices.getTotalTime()));
        return sysBedInfoDao.findFreeBed(sysProjServices);
    }
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysCheckInfoServiceImpl.java
@@ -13,7 +13,7 @@
import com.matrix.system.hive.bean.*;
import com.matrix.system.hive.dao.*;
import com.matrix.system.hive.plugin.util.CollectionUtils;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.plugin.util.MoneyUtil;
import com.matrix.system.hive.service.CodeService;
import com.matrix.system.hive.service.SysCheckInfoService;
@@ -149,10 +149,10 @@
    @Override
    public List<SysCheckInfo> findInPage(SysCheckInfo sysCheckInfo, PaginationVO pageVo) {
        // 设置开始开始时间
        Date startDate = DateUtils.getStartDate(sysCheckInfo.getStartTime());
        Date startDate = DateUtil.getStartDate(sysCheckInfo.getStartTime());
        sysCheckInfo.setStartTime(startDate);
        // 设置结束时间
        Date endDate = DateUtils.getEndDate(sysCheckInfo.getEndTime());
        Date endDate = DateUtil.getEndDate(sysCheckInfo.getEndTime());
        sysCheckInfo.setEndTime(endDate);
        return sysCheckInfoDao.selectInPage(sysCheckInfo, pageVo);
    }
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
@@ -15,7 +15,7 @@
import com.matrix.system.hive.dao.*;
import com.matrix.system.hive.hievEnum.PayMethodEnum;
import com.matrix.system.hive.plugin.util.CollectionUtils;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.plugin.util.MoneyUtil;
import com.matrix.system.hive.pojo.CzXkVo;
import com.matrix.system.hive.pojo.ShoppingCarItem;
@@ -738,7 +738,7 @@
                    cal.set(2200, 1, 1);
                    moneyCardUse.setFailTime(cal.getTime());
                } else {
                    moneyCardUse.setFailTime(DateUtils.nextNDate(new Date(), 30 * moneyCar.getValidity()));
                    moneyCardUse.setFailTime(DateUtil.nextNDate(new Date(), 30 * moneyCar.getValidity()));
                }
                moneyCardUseDao.insert(moneyCardUse);
            }
@@ -1148,7 +1148,7 @@
        order.setVipId(czVo.getVipId());
        Date orderTime = new Date();
        if (StringUtils.isNotBlank(czVo.getDateTime())) {
            orderTime = DateUtils.stringToDateNew(czVo.getDateTime(), DateUtils.DATE_FORMAT_DD);
            orderTime = DateUtil.stringToDateNew(czVo.getDateTime(), DateUtil.DATE_FORMAT_DD);
        }
        order.setOrderTime(orderTime);
        order.setPayTime(orderTime);
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java
@@ -12,7 +12,7 @@
import com.matrix.system.constance.Dictionary;
import com.matrix.system.hive.bean.*;
import com.matrix.system.hive.dao.*;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.plugin.util.MoneyUtil;
import com.matrix.system.hive.pojo.MyBeauticianCount;
import com.matrix.system.hive.service.*;
@@ -324,13 +324,13 @@
        // 验证床位排班时间是否正确
        SysBedState sysBedState = projServices.getBedState();
        sysBedState.setEndTime(DateUtils.getNextNMinute(sysBedState.getStartTime(), projServices.getTotalTime()));
        sysBedState.setEndTime(DateUtil.getNextNMinute(sysBedState.getStartTime(), projServices.getTotalTime()));
        sysBedState.setBedId(projServices.getBedId());
        sysBedState.setServiceId((projServices.getId()));
        sysBedState.setBedState(Dictionary.BED_STATE_SYZ);
        for (SysBeauticianState beauticianState : projServices.getServiceItems()) {
            if (DateUtils.isAffterDate(beauticianState.getEndTime(), beauticianState.getBeginTime())) {
            if (DateUtil.isAffterDate(beauticianState.getEndTime(), beauticianState.getBeginTime())) {
                throw new GlobleException("美疗师的排班结束时间不能晚于美疗师排班的开始时间!");
            }
        }
@@ -709,7 +709,7 @@
            }
            checkprojServices.setEndTime(new Date());
            // 计算时差
            long minspace = DateUtils.getDifTimeMin(checkprojServices.getStartTime(), checkprojServices.getEndTime())
            long minspace = DateUtil.getDifTimeMin(checkprojServices.getStartTime(), checkprojServices.getEndTime())
                    - checkprojServices.getTotalTime();
            // 判断是服务超时还是服务提前结束,如果minspace大于0则是超时服务,小于0则是提前结束服务
            checkprojServices.setIsOverTime(minspace + "");
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjUseServiceImpl.java
@@ -11,7 +11,7 @@
import com.matrix.system.hive.bean.*;
import com.matrix.system.hive.dao.*;
import com.matrix.system.hive.plugin.util.CollectionUtils;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.plugin.util.MoneyUtil;
import com.matrix.system.hive.service.SysProjUseService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -153,7 +153,7 @@
                contentZr.append("获取会员" + vipInfo.getVipName() + "的")
                        .append(",余额:" + projuse.getBalance())
                        .append(",余次:")
                        .append(",有效期:" + DateUtils.dateToString(projuse.getFailTime(), DateUtils.DATE_FORMAT_MM))
                        .append(",有效期:" + DateUtil.dateToString(projuse.getFailTime(), DateUtil.DATE_FORMAT_MM))
                        .append(",是否赠送:");
@@ -341,7 +341,7 @@
                        .append(",余次:" + cardUse.getLastCountName())
                        .append(",本金余额:" + MoneyUtil.add(cardUse.getRealMoney(), money))
                        .append(",赠送余额:" + cardUse.getGiftMoney())
                        .append(",有效期:" + DateUtils.dateToString(cardUse.getFailTime(), DateUtils.DATE_FORMAT_MM))
                        .append(",有效期:" + DateUtil.dateToString(cardUse.getFailTime(), DateUtil.DATE_FORMAT_MM))
                        .append(",是否赠送:" + cardUse.getSourceName());
                content += contentBuild.toString();
@@ -463,7 +463,7 @@
        contentZr.append("获取会员" + vipInfo.getVipName() + "的" + shoppingGoods.getName())
                .append(",余额:" + sysProjUse.getBalance())
                .append(",余次:" + sysProjUse.getSurplusCount())
                .append(",有效期:" + DateUtils.dateToString(sysProjUse.getFailTime(), DateUtils.DATE_FORMAT_MM))
                .append(",有效期:" + DateUtil.dateToString(sysProjUse.getFailTime(), DateUtil.DATE_FORMAT_MM))
                .append(",是否赠送:");
@@ -570,7 +570,7 @@
            content.append("到会籍卡(" + upCard.getCardName() + ")" + sysProjUse.getBalance() + "元")
                    .append(",余次:" + upCard.getLastCountName())
                    .append(",本金余额:" + upCard.getRealMoney())
                    .append(",有效期:" + DateUtils.dateToString(upCard.getFailTime(), DateUtils.DATE_FORMAT_MM))
                    .append(",有效期:" + DateUtil.dateToString(upCard.getFailTime(), DateUtil.DATE_FORMAT_MM))
                    .append(",是否赠送:" + upCard.getSourceName());
        } else {
            content.append("现金" + sysProjUse.getBalance() + "元");
@@ -616,7 +616,7 @@
        StringBuilder content = new StringBuilder();
        ShoppingGoods shoppingGoods = shoppingGoodsDao.selectById(proj.getProjId());
        content.append(shoppingGoods.getName() + "设置为有效")
                .append(",有效期:" + DateUtils.dateToString(proj.getFailTime(), DateUtils.DATE_FORMAT_MM));
                .append(",有效期:" + DateUtil.dateToString(proj.getFailTime(), DateUtil.DATE_FORMAT_MM));
        return new AjaxResult(AjaxResult.STATUS_SUCCESS, "操作成功");
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysWorkBeatuistaffServiceImpl.java
@@ -10,7 +10,7 @@
import com.matrix.system.hive.bean.SysWorkBeatuistaff;
import com.matrix.system.hive.bean.SysWorktime;
import com.matrix.system.hive.dao.SysWorkBeatuistaffDao;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.pojo.BeautiWorkForm;
import com.matrix.system.hive.service.SysWorkBeatuistaffService;
import com.matrix.system.hive.service.SysWorktimeService;
@@ -153,7 +153,7 @@
        // 根据分页获取未来7天的日期
        List<Date> dates = DateUtils.getFutureDay(date, 0 * page, 7 * page);
        List<Date> dates = DateUtil.getFutureDay(date, 0 * page, 7 * page);
        SysUsers users = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
        List<SysWorktime> worktimes = sysWorkTimeService.findWorkTimeByshopId(users.getShopId());
@@ -164,7 +164,7 @@
            List<List<SysWorkBeatuistaff>> staffs = new ArrayList<List<SysWorkBeatuistaff>>();
            for (SysWorktime sysWorktime : worktimes) {
                staffs.add(sysWorkBeatuistaffDao
                        .selectByCode(DateUtils.dateToString(dtime, "yyyyMMdd") , sysWorktime.getId()));
                        .selectByCode(DateUtil.dateToString(dtime, "yyyyMMdd") , sysWorktime.getId()));
            }
            beautiWorkForm.setQueryListWorks(staffs);
            workForms.add(beautiWorkForm);
zq-erp/src/main/java/com/matrix/system/hive/statistics/BusinessDataShowVo.java
@@ -1,7 +1,7 @@
package com.matrix.system.hive.statistics;
import com.matrix.core.anotations.Extend;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@@ -26,12 +26,12 @@
     * 查询条件
     */
    @Extend
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD)
    private Date beginTime;
    @Extend
    @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD)
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD)
    private Date endTime;
    public Date getBeginTime() {
zq-erp/src/main/java/com/matrix/system/hiveErp/Vo/StatisticsParamVo.java
File was renamed from zq-erp/src/main/java/com/matrix/system/hive/pojo/StatisticsParamVo.java
@@ -1,4 +1,4 @@
package com.matrix.system.hive.pojo;
package com.matrix.system.hiveErp.Vo;
/**
 * 统计查询条件
zq-erp/src/main/java/com/matrix/system/hiveErp/Vo/StatisticsTimeDaoParam.java
File was renamed from zq-erp/src/main/java/com/matrix/system/hive/pojo/StatisticsTimeDaoParam.java
@@ -1,4 +1,4 @@
package com.matrix.system.hive.pojo;
package com.matrix.system.hiveErp.Vo;
import java.util.Date;
zq-erp/src/main/java/com/matrix/system/hiveErp/action/CustomerAnalysis.java
New file
@@ -0,0 +1,111 @@
package com.matrix.system.hiveErp.action;
import com.matrix.core.pojo.AjaxResult;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hiveErp.Vo.StatisticsParamVo;
import com.matrix.system.hiveErp.Vo.StatisticsTimeDaoParam;
import com.matrix.system.hiveErp.dao.TjVipSumDao;
import com.matrix.system.hiveErp.util.StatisticsTimeUtil;
import org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.*;
@Controller
@RequestMapping(value = "admin/analysis")
public class CustomerAnalysis {
    @Autowired
    TjVipSumDao tjVipSumDao;
    /**
     * 到店次数趋势统计
     *
     * @return
     */
    @RequestMapping(value = "/vipVisitTendency ")
    public @ResponseBody
    AjaxResult vipVisit(StatisticsParamVo statisticsParam) {
        AjaxResult result = new AjaxResult();
        //计算横坐标
        List<Date> xAxis = StatisticsTimeUtil.getTimeSpace(statisticsParam.getBeginTime(), statisticsParam.getEndTime(), statisticsParam.getStatisticsUnit());
        Map<String, Integer> yAxisMap = tjVipSumDao.countVisitByTime(buidParam(xAxis),null);
        Integer[] series= getSeries(yAxisMap);
        //构造返回对象
        Map<Object,Object> data=new HashMap<>();
        data.put("series",series);
        data.put("xAxis", getFormartDateList(xAxis,statisticsParam));
        result.setMapInfo(data);
        result.setStatus(AjaxResult.STATUS_SUCCESS);
        return result;
    }
    /**
     * 获取map中的值为数组
     * @param yAxisMap
     * @return
     */
    private Integer[] getSeries(Map<String, Integer> yAxisMap) {
        if (MapUtils.isNotEmpty(yAxisMap)) {
            Integer[] seroes = new Integer[yAxisMap.size()-1];
            for (int index=0; index<yAxisMap.size()-1 ; index++) {
                if(index<seroes.length){
                    seroes[index]=Integer.parseInt(yAxisMap.get("t"+index)+"");
                }
            }
            return seroes;
        } else {
            return new Integer[0];
        }
    }
    private String[] getFormartDateList(List<Date> xAxis,StatisticsParamVo statisticsParam) {
        String[] dates=new String[xAxis.size()];
        String dataFmt="";
        switch (statisticsParam.getStatisticsUnit()){
            case "时":
                dataFmt= DateUtil.DATE_FORMAT_HH;
                break;
            case "日":
                dataFmt=DateUtil.DATE_FORMAT_DD;
                break;
            case "月":
                dataFmt=DateUtil.MONTH;
                break;
            case "年":
                dataFmt=DateUtil.YEAR;
                break;
        }
        for(int i=0 ; i<dates.length; i++ ){
            dates[i]= DateUtil.dateToString(xAxis.get(i),dataFmt);
        }
        return dates;
    }
    /**
     * 构建查询参数,带时间范围
     * @param xAxis
     * @return
     */
    private List<StatisticsTimeDaoParam> buidParam(List<Date> xAxis) {
        List<StatisticsTimeDaoParam> daoParams = new ArrayList<>();
        for(int i=0 ;i<xAxis.size(); i++){
            StatisticsTimeDaoParam param=  new StatisticsTimeDaoParam();
            param.setBeginTime(xAxis.get(i));
            if(i+1<xAxis.size()){
                param.setEndTime(xAxis.get(i+1));
            }
            daoParams.add(param);
        }
        return daoParams;
    }
}
zq-erp/src/main/java/com/matrix/system/hiveErp/action/ErpOrderController.java
@@ -18,7 +18,7 @@
import com.matrix.system.hive.bean.SysOrderItem;
import com.matrix.system.hive.dao.SysOrderDao;
import com.matrix.system.hive.dao.SysOrderItemDao;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.service.AchieveNewService;
import com.matrix.system.hive.service.MoneyCardUseService;
import com.matrix.system.hive.service.SysOrderItemService;
@@ -153,7 +153,7 @@
                temp.add(item.getOrderNo());
                temp.add(item.getVipName());
                temp.add(item.getVipPhone());
                temp.add(DateUtils.dateToString(item.getOrderTime(), DateUtils.DATE_FORMAT_MM));
                temp.add(DateUtil.dateToString(item.getOrderTime(), DateUtil.DATE_FORMAT_MM));
                temp.add(item.getTotal());
                temp.add(item.getZkTotal());
                temp.add(item.getCashPay());
zq-erp/src/main/java/com/matrix/system/hiveErp/action/ErpVipInfoController.java
@@ -23,7 +23,7 @@
import com.matrix.system.hive.bean.*;
import com.matrix.system.hive.dao.MoneyCardUseDao;
import com.matrix.system.hive.dao.VipAnswerDao;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.pojo.RegisterInfo;
import com.matrix.system.hive.service.*;
import org.springframework.beans.factory.annotation.Autowired;
@@ -341,7 +341,7 @@
    public @ResponseBody
    AjaxResult register(RegisterInfo vipInfo) {
        vipInfo.setBirthday1(DateUtils.stringToDate(vipInfo.getVoBirthday(), "yyyy-MM-dd"));
        vipInfo.setBirthday1(DateUtil.stringToDate(vipInfo.getVoBirthday(), "yyyy-MM-dd"));
        vipInfo.setVipState(Dictionary.VIP_STATE_HY);
        vipInfo.setStaffId(getMe().getSuId());
        vipInfo.setShopId(getMe().getShopId());
@@ -448,15 +448,12 @@
        int month = c.get(Calendar.MONTH) + 1;
        //获取日
        int day = c.get(Calendar.DATE);
        //生肖
        String sx = DateUtils.getYear(year);
        //星座
        String xz = DateUtils.getConstellation(month, day);
        String xz = DateUtil.getConstellation(month, day);
        SysVipInfo vip = new SysVipInfo();
        vip.setConstell(xz);
        vip.setAnimalSign(sx);
        List<SysVipInfo> vipList = new ArrayList<SysVipInfo>();
        vipList.add(vip);
        return new AjaxResult(AjaxResult.STATUS_SUCCESS, vipList, 0);
zq-erp/src/main/java/com/matrix/system/hiveErp/dao/TjVipSumDao.java
New file
@@ -0,0 +1,16 @@
package com.matrix.system.hiveErp.dao;
import com.matrix.system.hiveErp.Vo.StatisticsTimeDaoParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
public interface TjVipSumDao {
     Map<String,Integer> countVisitByTime(@Param("list") List<StatisticsTimeDaoParam> daoParams, @Param("shopId") Long shopId);
}
zq-erp/src/main/java/com/matrix/system/hiveErp/util/StatisticsTimeUtil.java
New file
@@ -0,0 +1,106 @@
package com.matrix.system.hiveErp.util;
import com.matrix.core.tools.DateUtil;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
public class StatisticsTimeUtil {
    /**
     * 通过统计单位获取时间段中,有多小段
     * @param beginTime
     * @param endTime
     * @param statisticsUnit
     * @return
     */
    public static List<Date> getTimeSpace(String beginTime, String endTime, String statisticsUnit) {
        List<Date> result=new ArrayList<>();
        switch (statisticsUnit){
            case "时":
                    return getTimeSpaceByHours(beginTime,endTime);
            case "日":
                return getTimeSpaceByDay(beginTime,endTime);
            case "月":
                return getTimeSpaceByMonth(beginTime,endTime);
            case "年":
                return getTimeSpaceByYear(beginTime,endTime);
                default:
                    return result;
        }
    }
    private static List<Date> getTimeSpaceByYear(String beginTime, String endTime){
        List<Date> tims=new ArrayList();
        Date begin= DateUtil.stringToDate(beginTime,DateUtil.YEAR);
        Date end= DateUtil.stringToDate(endTime,DateUtil.YEAR);
        tims.add(begin);
        while(DateUtil.isAffterDate(begin,end)){
            begin=DateUtil.getDateAfterYear(begin,1);
            tims.add(begin);
        }
        return tims;
    }
    private static List<Date> getTimeSpaceByMonth(String beginTime, String endTime){
        List<Date> tims=new ArrayList();
        Date begin= DateUtil.stringToDate(beginTime,DateUtil.MONTH);
        Date end= DateUtil.stringToDate(endTime,DateUtil.MONTH);
        tims.add(begin);
        while(DateUtil.isAffterDate(begin,end)){
            begin=DateUtil.getDateAfterMonth(begin,1);
            tims.add(begin);
        }
        return tims;
    }
    private static List<Date> getTimeSpaceByDay(String beginTime, String endTime){
        List<Date> tims=new ArrayList();
        Date begin= DateUtil.stringToDate(beginTime,DateUtil.DATE_FORMAT_DD);
        Date end= DateUtil.stringToDate(endTime,DateUtil.DATE_FORMAT_DD);
        tims.add(begin);
        while(DateUtil.isAffterDate(begin,end)){
            begin=DateUtil.getDateAfter(begin,1);
            tims.add(begin);
        }
        return tims;
    }
    private static List<Date> getTimeSpaceByHours(String beginTime, String endTime){
         List<Date> tims=new ArrayList();
         Date begin= DateUtil.stringToDate(beginTime,DateUtil.DATE_FORMAT_HH);
         Date end= DateUtil.stringToDate(endTime,DateUtil.DATE_FORMAT_HH);
         tims.add(begin);
         while(DateUtil.isAffterDate(begin,end)){
             begin=DateUtil.getDateAfterHours(begin,1);
             tims.add(begin);
         }
         return tims;
    }
    public static void main(String[] args) {
        List<Date> tims= getTimeSpaceByYear("2014","2019");
        for (Date time:  tims) {
            System.out.println(time.toLocaleString());
        }
    }
}
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/YuyueAction.java
@@ -17,7 +17,7 @@
import com.matrix.system.hive.dao.*;
import com.matrix.system.hive.plugin.message.StringUtil;
import com.matrix.system.hive.plugin.util.CollectionUtils;
import com.matrix.system.hive.plugin.util.DateUtils;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.service.CodeService;
import com.matrix.system.hive.service.SysProjUseService;
import com.matrix.system.hive.service.SysWorkBeatuistaffService;
@@ -375,7 +375,7 @@
    private int dateToCodeInt(Date date) {
        return Integer.parseInt(DateUtils.dateToString(date, DateUtils.HHmm));
        return Integer.parseInt(DateUtil.dateToString(date, DateUtil.HHmm));
    }
zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml
New file
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.matrix.system.hiveErp.dao.TjVipSumDao">
    <!-- 人头数统计 -->
    <select id="countVisitByTime" resultType="java.util.TreeMap">
        select
        <foreach collection="list" index="index" item="item"   separator=","  >
            SELECT count(*)  from (SELECT DISTINCT vip_id  from  achieve_new
                where
                <![CDATA[datatime > #{item.beginTime}   and  datatime < #{item.endTime} ]]>
                <if test="shopId !=null and shopId !=0 " >
                    and SHOP_ID = #{shopId}
                </if>
            ) t
        </foreach>
        from area where id=1
    </select>
    </mapper>
zq-erp/src/main/resources/static/js/systools/ChartsUtils.js
New file
@@ -0,0 +1,121 @@
/**
 * Crm数据图表
 * Created by jiangyouyao on 2019/4/20.
 */
function ChartsUtils(loadChartData) {
    //赋值加载数据方法
    this.loadChartData = loadChartData;
    this.$beginTime = $("#beginTime");
    this.$endTime = $("#endTime");
    this.$unitSelect = $("#unitSelect");
    //记录当前视图的格式化字符串
    this.dateFmt = "";
    //绑定搜索事件
    $('#serach').on("click",{charts:this},this.updateChartsDate);
    //时间单位选择变化
    this.$unitSelect.on("change",{charts:this},this.unitChange);
}
/**
 * 设置时间控件格式
 */
ChartsUtils.prototype.setDataPackTimeValue = function () {
    console.log("设置时间");
    var unit = this.$unitSelect.val();
    var startView, minView;
    //控件赋值
    var time = new Date();
    if (unit == '时') {
        startView = 1;
        minView = "day";
        this.dateFmt = "yyyy-MM-dd hh";
        //时间视图默认显示当天
        this.$endTime.val(DateFormat.format(DateFormat.getDateEnd(time), this.dateFmt));
        this.$beginTime.val(DateFormat.format(DateFormat.getDateStart(time), this.dateFmt));
    } else if (unit == '日') {
        console.log(time.getDate());
        startView = 2;
        minView = "month";
        this.dateFmt = "yyyy-MM-dd";
        //日视图默认显示当月
        this.$endTime.val(DateFormat.format(time, this.dateFmt));
        this.$beginTime.val(DateFormat.format(DateFormat.addDay(time, -(time.getDate() - 1)), this.dateFmt));
    } else if (unit == '月') {
        startView = 3;
        minView = "year";
        this.dateFmt = "yyyy-MM";
        //月视图默认显示当年
        this.$endTime.val(DateFormat.format(time, this.dateFmt));
        this.$beginTime.val(DateFormat.format(DateFormat.addMonth(time, -time.getMonth()), this.dateFmt));
    } else if (unit == '年') {
        startView = 4;
        minView = "decade";
        this.dateFmt = "yyyy";
        //年视图默认显示5年
        this.$endTime.val(DateFormat.format(time, this.dateFmt));
        this.$beginTime.val(DateFormat.format(DateFormat.addYear(time, -5), this.dateFmt));
    }
    console.log("startView", startView);
    //时间
    var _initParam = {
        format: this.dateFmt.toLowerCase(),
        todayBtn: false,
        autoclose: true,
        startView: startView,
        maxView: 4,
        minView: minView
    };
    MTools.ininDatetimepicker(_initParam);
}
/**
 * 校验时间范围
 */
ChartsUtils.prototype.checkTime = function () {
    var beginTimeStr = this.$beginTime.val();
    var endTimeStr = this.$endTime.val();
    if (StringUtils.isNotEmpty(beginTimeStr) && StringUtils.isNotBlank(endTimeStr)) {
        //字符串不为空
        var beginTime = moment(beginTimeStr);
        var endTime = moment(endTimeStr);
        console.log(beginTime.unix(), endTime.unix());
        if (beginTime.unix() <= endTime.unix()) {
            return true;
        } else {
            layer.msg("最小日期不能大于最大日期", {icon: 2});
            return false;
        }
    } else {
        layer.msg("请选择日期范围", {icon: 2});
        return false;
    }
}
ChartsUtils.prototype.unitChange = function (event) {
    //移除时间控件上的绑定时间
    $("#beginTime").datetimepicker('remove');
    $("#endTime").datetimepicker('remove');
    //根据单位重设定查询条件,新绑定时间控件,
    event.data.charts.setDataPackTimeValue();
    event.data.charts.loadChartData();
}
/**
 * 更新图表中的数据
 */
ChartsUtils.prototype.updateChartsDate=function(event){
    if(event.data.charts.checkTime()){
        event.data.charts.loadChartData();
    }
}
zq-erp/src/main/resources/static/plugin/StringUtil.js
New file
@@ -0,0 +1,437 @@
StringUtils = {
    isEmpty: function(input) {
        return input == null || input == '';
    },
    isNotEmpty: function(input) {
        return !this.isEmpty(input);
    },
    isBlank: function(input) {
        return input == null || /^\s*$/.test(input);
    },
    isNotBlank: function(input) {
        return !this.isBlank(input);
    },
    trim: function(input) {
        return input.replace(/^\s+|\s+$/, '');
    },
    trimToEmpty: function(input) {
        return input == null ? "" : this.trim(input);
    },
    startsWith: function(input, prefix) {
        return input.indexOf(prefix) === 0;
    },
    endsWith: function(input, suffix) {
        return input.lastIndexOf(suffix) === 0;
    },
    contains: function(input, searchSeq) {
        return input.indexOf(searchSeq) >= 0;
    },
    equals: function(input1, input2) {
        return input1 == input2;
    },
    equalsIgnoreCase: function(input1, input2) {
        return input1.toLocaleLowerCase() == input2.toLocaleLowerCase();
    },
    containsWhitespace: function(input) {
        return this.contains(input, ' ');
    },
    //生成指定个数的字符
    repeat: function(ch, repeatTimes) {
        var result = "";
        for(var i = 0; i < repeatTimes; i++) {
            result += ch;
        }
        return result;
    },
    deleteWhitespace: function(input) {
        return input.replace(/\s+/g, '');
    },
    rightPad: function(input, size, padStr) {
        return input + this.repeat(padStr, size);
    },
    leftPad: function(input, size, padStr) {
        return this.repeat(padStr, size) + input;
    },
    //首小写字母转大写
    capitalize: function(input) {
        var strLen = 0;
        if(input == null || (strLen = input.length) == 0) {
            return input;
        }
        return input.replace(/^[a-z]/, function(matchStr) {
            return matchStr.toLocaleUpperCase();
        });
    },
    //首大写字母转小写
    uncapitalize: function(input) {
        var strLen = 0;
        if(input == null || (strLen = input.length) == 0) {
            return input;
        }
        return input.replace(/^[A-Z]/, function(matchStr) {
            return matchStr.toLocaleLowerCase();
        });
    },
    //大写转小写,小写转大写
    swapCase: function(input) {
        return input.replace(/[a-z]/ig, function(matchStr) {
            if(matchStr >= 'A' && matchStr <= 'Z') {
                return matchStr.toLocaleLowerCase();
            } else if(matchStr >= 'a' && matchStr <= 'z') {
                return matchStr.toLocaleUpperCase();
            }
        });
    },
    //统计含有的子字符串的个数
    countMatches: function(input, sub) {
        if(this.isEmpty(input) || this.isEmpty(sub)) {
            return 0;
        }
        var count = 0;
        var index = 0;
        while((index = input.indexOf(sub, index)) != -1) {
            index += sub.length;
            count++;
        }
        return count;
    },
    //只包含字母
    isAlpha: function(input) {
        return /^[a-z]+$/i.test(input);
    },
    //只包含字母、空格
    isAlphaSpace: function(input) {
        return /^[a-z\s]*$/i.test(input);
    },
    //只包含字母、数字
    isAlphanumeric: function(input) {
        return /^[a-z0-9]+$/i.test(input);
    },
    //只包含字母、数字和空格
    isAlphanumericSpace: function(input) {
        return /^[a-z0-9\s]*$/i.test(input);
    },
    //数字
    isNumeric: function(input) {
        return /^(?:[1-9]\d*|0)(?:\.\d+)?$/.test(input);
    },
    //小数
    isDecimal: function(input) {
        return /^[-+]?(?:0|[1-9]\d*)\.\d+$/.test(input);
    },
    //负小数
    isNegativeDecimal: function(input) {
        return /^\-?(?:0|[1-9]\d*)\.\d+$/.test(input);
    },
    //正小数
    isPositiveDecimal: function(input) {
        return /^\+?(?:0|[1-9]\d*)\.\d+$/.test(input);
    },
    //整数
    isInteger: function(input) {
        return /^[-+]?(?:0|[1-9]\d*)$/.test(input);
    },
    //正整数
    isPositiveInteger: function(input) {
        return /^\+?(?:0|[1-9]\d*)$/.test(input);
    },
    //负整数
    isNegativeInteger: function(input) {
        return /^\-?(?:0|[1-9]\d*)$/.test(input);
    },
    //只包含数字和空格
    isNumericSpace: function(input) {
        return /^[\d\s]*$/.test(input);
    },
    isWhitespace: function(input) {
        return /^\s*$/.test(input);
    },
    isAllLowerCase: function(input) {
        return /^[a-z]+$/.test(input);
    },
    isAllUpperCase: function(input) {
        return /^[A-Z]+$/.test(input);
    },
    defaultString: function(input, defaultStr) {
        return input == null ? defaultStr : input;
    },
    defaultIfBlank: function(input, defaultStr) {
        return this.isBlank(input) ? defaultStr : input;
    },
    defaultIfEmpty: function(input, defaultStr) {
        return this.isEmpty(input) ? defaultStr : input;
    },
    //字符串反转
    reverse: function(input) {
        if(this.isBlank(input)) {
            input;
        }
        return input.split("").reverse().join("");
    },
    //删掉特殊字符(英文状态下)
    removeSpecialCharacter: function(input) {
        return input.replace(/[!-/:-@\[-`{-~]/g, "");
    },
    //只包含特殊字符、数字和字母(不包括空格,若想包括空格,改为[ -~])
    isSpecialCharacterAlphanumeric: function(input) {
        return /^[!-~]+$/.test(input);
    },
    /**
     * 校验时排除某些字符串,即不能包含某些字符串
     * @param {Object} conditions:里面有多个属性,如下:
     *
     * @param {String} matcherFlag 匹配标识
     * 0:数字;1:字母;2:小写字母;3:大写字母;4:特殊字符,指英文状态下的标点符号及括号等;5:中文;
     * 6:数字和字母;7:数字和小写字母;8:数字和大写字母;9:数字、字母和特殊字符;10:数字和中文;
     * 11:小写字母和特殊字符;12:大写字母和特殊字符;13:字母和特殊字符;14:小写字母和中文;15:大写字母和中文;
     * 16:字母和中文;17:特殊字符、和中文;18:特殊字符、字母和中文;19:特殊字符、小写字母和中文;20:特殊字符、大写字母和中文;
     * 100:所有字符;
     * @param {Array} excludeStrArr 排除的字符串,数组格式
     * @param {String} length 长度,可为空。1,2表示长度1到2之间;10,表示10个以上字符;5表示长度为5
     * @param {Boolean} ignoreCase 是否忽略大小写
     * conditions={matcherFlag:"0",excludeStrArr:[],length:"",ignoreCase:true}
     */
    isPatternMustExcludeSomeStr: function(input, conditions) {
        //参数
        var matcherFlag = conditions.matcherFlag;
        var excludeStrArr = conditions.excludeStrArr;
        var length = conditions.length;
        var ignoreCase = conditions.ignoreCase;
        //拼正则
        var size = excludeStrArr.length;
        var regex = (size == 0) ? "^" : "^(?!.*(?:{0}))";
        var subPattern = "";
        for(var i = 0; i < size; i++) {
            excludeStrArr[i] = Bee.StringUtils.escapeMetacharacterOfStr(excludeStrArr[i]);
            subPattern += excludeStrArr[i];
            if(i != size - 1) {
                subPattern += "|";
            }
        }
        regex = this.format(regex, [subPattern]);
        switch(matcherFlag) {
            case '0':
                regex += "\\d";
                break;
            case '1':
                regex += "[a-zA-Z]";
                break;
            case '2':
                regex += "[a-z]";
                break;
            case '3':
                regex += "[A-Z]";
                break;
            case '4':
                regex += "[!-/:-@\[-`{-~]";
                break;
            case '5':
                regex += "[\u4E00-\u9FA5]";
                break;
            case '6':
                regex += "[a-zA-Z0-9]";
                break;
            case '7':
                regex += "[a-z0-9]";
                break;
            case '8':
                regex += "[A-Z0-9]";
                break;
            case '9':
                regex += "[!-~]";
                break;
            case '10':
                regex += "[0-9\u4E00-\u9FA5]";
                break;
            case '11':
                regex += "[a-z!-/:-@\[-`{-~]";
                break;
            case '12':
                regex += "[A-Z!-/:-@\[-`{-~]";
                break;
            case '13':
                regex += "[a-zA-Z!-/:-@\[-`{-~]";
                break;
            case '14':
                regex += "[a-z\u4E00-\u9FA5]";
                break;
            case '15':
                regex += "[A-Z\u4E00-\u9FA5]";
                break;
            case '16':
                regex += "[a-zA-Z\u4E00-\u9FA5]";
                break;
            case '17':
                regex += "[\u4E00-\u9FA5!-/:-@\[-`{-~]";
                break;
            case '18':
                regex += "[\u4E00-\u9FA5!-~]";
                break;
            case '19':
                regex += "[a-z\u4E00-\u9FA5!-/:-@\[-`{-~]";
                break;
            case '20':
                regex += "[A-Z\u4E00-\u9FA5!-/:-@\[-`{-~]";
                break;
            case '100':
                regex += "[\s\S]";
                break;
            default:
                alert(matcherFlag + ":This type is not supported!");
        }
        regex += this.isNotBlank(length) ? "{" + length + "}" : "+";
        regex += "$";
        var pattern = new RegExp(regex, ignoreCase ? "i" : "");
        return pattern.test(input);
    },
    /**
     * @param {String} message
     * @param {Array} arr
     * 消息格式化
     */
    format: function(message, arr) {
        return message.replace(/{(\d+)}/g, function(matchStr, group1) {
            return arr[group1];
        });
    },
    /**
     * 把连续出现多次的字母字符串进行压缩。如输入:aaabbbbcccccd 输出:3a4b5cd
     * @param {String} input
     * @param {Boolean} ignoreCase : true or false
     */
    compressRepeatedStr: function(input, ignoreCase) {
        var pattern = new RegExp("([a-z])\\1+", ignoreCase ? "ig" : "g");
        return result = input.replace(pattern, function(matchStr, group1) {
            return matchStr.length + group1;
        });
    },
    /**
     * 校验必须同时包含某些字符串
     * @param {String} input
     * @param {Object} conditions:里面有多个属性,如下:
     *
     * @param {String} matcherFlag 匹配标识
     * 0:数字;1:字母;2:小写字母;3:大写字母;4:特殊字符,指英文状态下的标点符号及括号等;5:中文;
     * 6:数字和字母;7:数字和小写字母;8:数字和大写字母;9:数字、字母和特殊字符;10:数字和中文;
     * 11:小写字母和特殊字符;12:大写字母和特殊字符;13:字母和特殊字符;14:小写字母和中文;15:大写字母和中文;
     * 16:字母和中文;17:特殊字符、和中文;18:特殊字符、字母和中文;19:特殊字符、小写字母和中文;20:特殊字符、大写字母和中文;
     * 100:所有字符;
     * @param {Array} excludeStrArr 排除的字符串,数组格式
     * @param {String} length 长度,可为空。1,2表示长度1到2之间;10,表示10个以上字符;5表示长度为5
     * @param {Boolean} ignoreCase 是否忽略大小写
     * conditions={matcherFlag:"0",containStrArr:[],length:"",ignoreCase:true}
     *
     */
    isPatternMustContainSomeStr: function(input, conditions) {
        //参数
        var matcherFlag = conditions.matcherFlag;
        var containStrArr = conditions.containStrArr;
        var length = conditions.length;
        var ignoreCase = conditions.ignoreCase;
        //创建正则
        var size = containStrArr.length;
        var regex = "^";
        var subPattern = "";
        for(var i = 0; i < size; i++) {
            containStrArr[i] = Bee.StringUtils.escapeMetacharacterOfStr(containStrArr[i]);
            subPattern += "(?=.*" + containStrArr[i] + ")";
        }
        regex += subPattern;
        switch(matcherFlag) {
            case '0':
                regex += "\\d";
                break;
            case '1':
                regex += "[a-zA-Z]";
                break;
            case '2':
                regex += "[a-z]";
                break;
            case '3':
                regex += "[A-Z]";
                break;
            case '4':
                regex += "[!-/:-@\[-`{-~]";
                break;
            case '5':
                regex += "[\u4E00-\u9FA5]";
                break;
            case '6':
                regex += "[a-zA-Z0-9]";
                break;
            case '7':
                regex += "[a-z0-9]";
                break;
            case '8':
                regex += "[A-Z0-9]";
                break;
            case '9':
                regex += "[!-~]";
                break;
            case '10':
                regex += "[0-9\u4E00-\u9FA5]";
                break;
            case '11':
                regex += "[a-z!-/:-@\[-`{-~]";
                break;
            case '12':
                regex += "[A-Z!-/:-@\[-`{-~]";
                break;
            case '13':
                regex += "[a-zA-Z!-/:-@\[-`{-~]";
                break;
            case '14':
                regex += "[a-z\u4E00-\u9FA5]";
                break;
            case '15':
                regex += "[A-Z\u4E00-\u9FA5]";
                break;
            case '16':
                regex += "[a-zA-Z\u4E00-\u9FA5]";
                break;
            case '17':
                regex += "[\u4E00-\u9FA5!-/:-@\[-`{-~]";
                break;
            case '18':
                regex += "[\u4E00-\u9FA5!-~]";
                break;
            case '19':
                regex += "[a-z\u4E00-\u9FA5!-/:-@\[-`{-~]";
                break;
            case '20':
                regex += "[A-Z\u4E00-\u9FA5!-/:-@\[-`{-~]";
                break;
            case '100':
                regex += "[\s\S]";
                break;
            default:
                alert(matcherFlag + ":This type is not supported!");
        }
        regex += this.isNotBlank(length) ? "{" + length + "}" : "+";
        regex += "$";
        var pattern = new RegExp(regex, ignoreCase ? "i" : "");
        return pattern.test(input);
    },
    //中文校验
    isChinese: function(input) {
        return /^[\u4E00-\u9FA5]+$/.test(input);
    },
    //去掉中文字符
    removeChinese: function(input) {
        return input.replace(/[\u4E00-\u9FA5]+/gm, "");
    },
    //转义元字符
    escapeMetacharacter: function(input) {
        var metacharacter = "^$()*+.[]|\\-?{}|";
        if(metacharacter.indexOf(input) >= 0) {
            input = "\\" + input;
        }
        return input;
    },
    //转义字符串中的元字符
    escapeMetacharacterOfStr: function(input) {
        return input.replace(/[\^\$\*\+\.\|\\\-\?\{\}\|]/gm, "\\$&");
    }
};
zq-erp/src/main/resources/static/plugin/dateformat.js
New file
@@ -0,0 +1,297 @@
/**
 * autor: xuxiao , zubaoshan
 */
(function () {
    //定义一些默认参数
    var _options = {
        ZH: {
            dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
            shortDayNames: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
            monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
            shortMonthNames: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']
        },
        US: {
            dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
            shortDayNames: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
            monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
            shortMonthNames: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
        }
    }
    //定义一些api
    var _date_format_api = {
        /**
         * 格式化时间
         * @param date
         * @param fmt
         * @returns {*}
         */
        format: function (date, fmt) {
            var o = {
                'M+': date.getMonth() + 1, //月份
                'd+': date.getDate(), //日
                'h+': date.getHours(), //小时
                'm+': date.getMinutes(), //分
                's+': date.getSeconds(), //秒
                'q+': Math.floor((date.getMonth() + 3) / 3), //季度
                'S': date.getMilliseconds() //毫秒
            };
            if(!this.isNotEmpty(fmt)){
                fmt = 'yyyy-MM-dd hh:mm:ss';
            }
            if (/(y+)/.test(fmt)) {
                fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
            }
            for (var k in o) {
                if (new RegExp('(' + k + ')').test(fmt)) {
                    fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)));
                }
            }
            return fmt;
        },
        formatToDate: function (dateStr) {
            if(this.isNotEmpty(dateStr) ){
                return new Date(Date.parse(dateStr.replace(/-/g,   "/")));
            }
            return '';
        },
        /**
         * 得到一天的开始 date类型
         * @param date
         */
        getDateStart: function (date) {
            var fmt = 'yyyy-MM-dd';
            var dateStartStr = this.getDateStartStr(date, fmt);
            var startTime = new Date(Date.parse(dateStartStr));
            return startTime;
        },
        /**
         * 得到一天的开始 str 类型
         * @param date
         */
        getDateStartStr: function (date, fmt) {
            if (typeof fmt == 'undefined') {
                fmt = 'yyyy-MM-dd';
            }
            var dateStr = this.format(date, fmt);
            dateStr += ' 00:00:00';
            return dateStr;
        },
        /**
         * 得到一天的结束 date类型
         * @param date
         */
        getDateEnd: function (date) {
            var fmt = 'yyyy-MM-dd';
            var dateEndStr = this.getDateEndStr(date, fmt);
            var endTime = new Date(Date.parse(dateEndStr));
            return endTime;
        },
        /**
         * 得到一天的结束 str 类型
         * @param date
         */
        getDateEndStr: function (date, fmt) {
            if (typeof fmt == 'undefined') {
                fmt = 'yyyy-MM-dd';
            }
            var endStr = this.format(date, fmt);
            endStr += ' 23:59:59';
            return endStr;
        },
        /**
         * 两个时间比较大小
         * @param d1
         * @param d2
         */
        compareDate: function (d1, d2) {
            if (d1 && d2) {
                if (d1.getTime() > d2.getTime()) {
                    return 1;
                } else if (d1.getTime() == d2.getTime()) {
                    return 0;
                } else if (d1.getTime() < d2.getTime()) {
                    return -1;
                }
            }
        },
        /**
         * 得到星期几, 支持中英
         * @param date
         * @param type
         * @returns {string}
         */
        getWeek: function (date, type) {
            if (date) {
                if (!this.isNotEmpty(type)) {
                    type = 0;
                }
                var index = date.getDay();
                var dateStr = '';
                switch (type) {
                    case this.WEEKTYPE.ZH_DAYNAME:
                        dateStr = _options.ZH.dayNames[index];
                        break;
                    case this.WEEKTYPE.ZH_SDAYNAME:
                        dateStr = _options.ZH.shortDayNames[index];
                        break;
                    case this.WEEKTYPE.US_DAYNAME:
                        dateStr = _options.US.dayNames[index];
                        break;
                    case this.WEEKTYPE.US_SDAYNAME:
                        dateStr = _options.US.shortDayNames[index];
                        break;
                }
                return dateStr;
            }
        },
        /**
         * 是否为闰年
         * @param date
         * @returns {boolean}
         */
        isLeapYear: function (date) {
            if (date instanceof Date) {
                return (0 == date.getYear() % 4 && (( date.getYear() % 100 != 0) || (date.getYear() % 400 == 0)));
            }
            console.warn('argument format is wrong');
            return false;
        },
        /**
         * 字符串是否为正确的时间格式,支持 - /
         * @param dateStr
         * @returns {boolean}
         */
        isValidDate: function (dateStr) {
            if (this.isNotEmpty(dateStr)) {
                var r= dateStr.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
                if(r==null){
                    return false;
                }
                var d=new Date(r[1],r[3]-1,r[4]);
                var num = (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
                return (num!=0);
            }
        },
        /**
         * 增加天数
         * @param date
         * @param dayNum
         */
        addDay: function (date, dayNum) {
            if(this.isNotEmpty(date) && this.isNotEmpty(dayNum) && date instanceof Date && typeof dayNum == 'number'){
                date.setDate(date.getDate() + dayNum);
            }else{
                console.warn('date or dayNum format wrong');
            }
            return date;
        },
        addDayStr: function (dateStr, dayNum) {
            var date ='';
            if(this.isNotEmpty(dateStr) && this.isNotEmpty(dayNum) && typeof dayNum == 'number'){
                date = this.formatToDate(dateStr);
                date.setDate(date.getDate() + dayNum);
            }else{
                console.warn('dateStr or dayNum format wrong');
            }
            return date;
        },
        /**
         * 增加月份
         * @param date
         * @param dayNum
         */
        addMonth: function (date, monthNum) {
            if(this.isNotEmpty(date) && this.isNotEmpty(monthNum) && date instanceof Date && typeof monthNum == 'number'){
                date.setMonth(date.getMonth() + monthNum);
            }else{
                console.warn('date or monthNum format wrong');
            }
            return date;
        },
        addMonthStr: function (dateStr, monthNum) {
            var date ='';
            if(this.isNotEmpty(dateStr) && this.isNotEmpty(monthNum) && typeof monthNum == 'number'){
                date = this.formatToDate(dateStr);
                date.setMonth(date.getMonth() + monthNum);
            }else{
                console.warn('date or monthNum format wrong');
            }
            return date;
        },
        /**
         * 增加年份
         * @param date
         * @param dayNum
         */
        addYear: function (date, yearNum) {
            if(this.isNotEmpty(date) && this.isNotEmpty(yearNum) && date instanceof Date && typeof yearNum == 'number'){
                date.setYear(date.getFullYear() + yearNum);
            }else{
                console.warn('date or yearNum format wrong');
            }
            return date;
        },
        addYearStr: function (dateStr, yearNum) {
            var date = '';
            if(this.isNotEmpty(dateStr) && this.isNotEmpty(yearNum) && typeof yearNum == 'number'){
                date = this.formatToDate(dateStr);
                date.setYear(date.getFullYear() + yearNum);
            }else{
                console.warn('date or yearNum format wrong');
            }
            return date;
        },
        /**
         * 是否为空
         * @param str
         * @returns {boolean}
         */
        isNotEmpty: function (str) {
            if (str != '' && str != null && typeof str != 'undefined') {
                return true;
            }
            console.warn('argument format is wrong');
            return false;
        },
        //定义内部常量
        WEEKTYPE: {
            ZH_DAYNAME: 0,
            ZH_SDAYNAME: 1,
            US_DAYNAME: 2,
            US_SDAYNAME: 3,
        }
    }
    //这里确定了插件的名称
    this.DateFormat = _date_format_api;
})();
zq-erp/src/main/resources/static/plugin/echarts/echarts.all.js
New file
Diff too large
zq-erp/src/main/resources/static/plugin/echarts/essos.js
New file
@@ -0,0 +1,516 @@
(function (root, factory) {
    if (typeof define === 'function' && define.amd) {
        // AMD. Register as an anonymous module.
        define(['exports', 'echarts'], factory);
    } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {
        // CommonJS
        factory(exports, require('echarts'));
    } else {
        // Browser globals
        factory({}, root.echarts);
    }
}(this, function (exports, echarts) {
    var log = function (msg) {
        if (typeof console !== 'undefined') {
            console && console.error && console.error(msg);
        }
    };
    if (!echarts) {
        log('ECharts is not Loaded');
        return;
    }
    echarts.registerTheme('essos', {
        "color": [
            "#893448",
            "#d95850",
            "#eb8146",
            "#ffb248",
            "#f2d643",
            "#ebdba4"
        ],
        "backgroundColor": "rgba(242,234,191,0.15)",
        "textStyle": {},
        "title": {
            "textStyle": {
                "color": "#893448"
            },
            "subtextStyle": {
                "color": "#d95850"
            }
        },
        "line": {
            "itemStyle": {
                "normal": {
                    "borderWidth": "2"
                }
            },
            "lineStyle": {
                "normal": {
                    "width": "2"
                }
            },
            "symbolSize": "6",
            "symbol": "emptyCircle",
            "smooth": true
        },
        "radar": {
            "itemStyle": {
                "normal": {
                    "borderWidth": "2"
                }
            },
            "lineStyle": {
                "normal": {
                    "width": "2"
                }
            },
            "symbolSize": "6",
            "symbol": "emptyCircle",
            "smooth": true
        },
        "bar": {
            "itemStyle": {
                "normal": {
                    "barBorderWidth": 0,
                    "barBorderColor": "#ccc"
                },
                "emphasis": {
                    "barBorderWidth": 0,
                    "barBorderColor": "#ccc"
                }
            }
        },
        "pie": {
            "itemStyle": {
                "normal": {
                    "borderWidth": 0,
                    "borderColor": "#ccc"
                },
                "emphasis": {
                    "borderWidth": 0,
                    "borderColor": "#ccc"
                }
            }
        },
        "scatter": {
            "itemStyle": {
                "normal": {
                    "borderWidth": 0,
                    "borderColor": "#ccc"
                },
                "emphasis": {
                    "borderWidth": 0,
                    "borderColor": "#ccc"
                }
            }
        },
        "boxplot": {
            "itemStyle": {
                "normal": {
                    "borderWidth": 0,
                    "borderColor": "#ccc"
                },
                "emphasis": {
                    "borderWidth": 0,
                    "borderColor": "#ccc"
                }
            }
        },
        "parallel": {
            "itemStyle": {
                "normal": {
                    "borderWidth": 0,
                    "borderColor": "#ccc"
                },
                "emphasis": {
                    "borderWidth": 0,
                    "borderColor": "#ccc"
                }
            }
        },
        "sankey": {
            "itemStyle": {
                "normal": {
                    "borderWidth": 0,
                    "borderColor": "#ccc"
                },
                "emphasis": {
                    "borderWidth": 0,
                    "borderColor": "#ccc"
                }
            }
        },
        "funnel": {
            "itemStyle": {
                "normal": {
                    "borderWidth": 0,
                    "borderColor": "#ccc"
                },
                "emphasis": {
                    "borderWidth": 0,
                    "borderColor": "#ccc"
                }
            }
        },
        "gauge": {
            "itemStyle": {
                "normal": {
                    "borderWidth": 0,
                    "borderColor": "#ccc"
                },
                "emphasis": {
                    "borderWidth": 0,
                    "borderColor": "#ccc"
                }
            }
        },
        "candlestick": {
            "itemStyle": {
                "normal": {
                    "color": "#eb8146",
                    "color0": "transparent",
                    "borderColor": "#d95850",
                    "borderColor0": "#58c470",
                    "borderWidth": "2"
                }
            }
        },
        "graph": {
            "itemStyle": {
                "normal": {
                    "borderWidth": 0,
                    "borderColor": "#ccc"
                }
            },
            "lineStyle": {
                "normal": {
                    "width": 1,
                    "color": "#aaaaaa"
                }
            },
            "symbolSize": "6",
            "symbol": "emptyCircle",
            "smooth": true,
            "color": [
                "#893448",
                "#d95850",
                "#eb8146",
                "#ffb248",
                "#f2d643",
                "#ebdba4"
            ],
            "label": {
                "normal": {
                    "textStyle": {
                        "color": "#ffffff"
                    }
                }
            }
        },
        "map": {
            "itemStyle": {
                "normal": {
                    "areaColor": "#f3f3f3",
                    "borderColor": "#999999",
                    "borderWidth": 0.5
                },
                "emphasis": {
                    "areaColor": "rgba(255,178,72,1)",
                    "borderColor": "#eb8146",
                    "borderWidth": 1
                }
            },
            "label": {
                "normal": {
                    "textStyle": {
                        "color": "#893448"
                    }
                },
                "emphasis": {
                    "textStyle": {
                        "color": "rgb(137,52,72)"
                    }
                }
            }
        },
        "geo": {
            "itemStyle": {
                "normal": {
                    "areaColor": "#f3f3f3",
                    "borderColor": "#999999",
                    "borderWidth": 0.5
                },
                "emphasis": {
                    "areaColor": "rgba(255,178,72,1)",
                    "borderColor": "#eb8146",
                    "borderWidth": 1
                }
            },
            "label": {
                "normal": {
                    "textStyle": {
                        "color": "#893448"
                    }
                },
                "emphasis": {
                    "textStyle": {
                        "color": "rgb(137,52,72)"
                    }
                }
            }
        },
        "categoryAxis": {
            "axisLine": {
                "show": true,
                "lineStyle": {
                    "color": "#aaaaaa"
                }
            },
            "axisTick": {
                "show": false,
                "lineStyle": {
                    "color": "#333"
                }
            },
            "axisLabel": {
                "show": true,
                "textStyle": {
                    "color": "#999999"
                }
            },
            "splitLine": {
                "show": true,
                "lineStyle": {
                    "color": [
                        "#e6e6e6"
                    ]
                }
            },
            "splitArea": {
                "show": false,
                "areaStyle": {
                    "color": [
                        "rgba(250,250,250,0.05)",
                        "rgba(200,200,200,0.02)"
                    ]
                }
            }
        },
        "valueAxis": {
            "axisLine": {
                "show": true,
                "lineStyle": {
                    "color": "#aaaaaa"
                }
            },
            "axisTick": {
                "show": false,
                "lineStyle": {
                    "color": "#333"
                }
            },
            "axisLabel": {
                "show": true,
                "textStyle": {
                    "color": "#999999"
                }
            },
            "splitLine": {
                "show": true,
                "lineStyle": {
                    "color": [
                        "#e6e6e6"
                    ]
                }
            },
            "splitArea": {
                "show": false,
                "areaStyle": {
                    "color": [
                        "rgba(250,250,250,0.05)",
                        "rgba(200,200,200,0.02)"
                    ]
                }
            }
        },
        "logAxis": {
            "axisLine": {
                "show": true,
                "lineStyle": {
                    "color": "#aaaaaa"
                }
            },
            "axisTick": {
                "show": false,
                "lineStyle": {
                    "color": "#333"
                }
            },
            "axisLabel": {
                "show": true,
                "textStyle": {
                    "color": "#999999"
                }
            },
            "splitLine": {
                "show": true,
                "lineStyle": {
                    "color": [
                        "#e6e6e6"
                    ]
                }
            },
            "splitArea": {
                "show": false,
                "areaStyle": {
                    "color": [
                        "rgba(250,250,250,0.05)",
                        "rgba(200,200,200,0.02)"
                    ]
                }
            }
        },
        "timeAxis": {
            "axisLine": {
                "show": true,
                "lineStyle": {
                    "color": "#aaaaaa"
                }
            },
            "axisTick": {
                "show": false,
                "lineStyle": {
                    "color": "#333"
                }
            },
            "axisLabel": {
                "show": true,
                "textStyle": {
                    "color": "#999999"
                }
            },
            "splitLine": {
                "show": true,
                "lineStyle": {
                    "color": [
                        "#e6e6e6"
                    ]
                }
            },
            "splitArea": {
                "show": false,
                "areaStyle": {
                    "color": [
                        "rgba(250,250,250,0.05)",
                        "rgba(200,200,200,0.02)"
                    ]
                }
            }
        },
        "toolbox": {
            "iconStyle": {
                "normal": {
                    "borderColor": "#999999"
                },
                "emphasis": {
                    "borderColor": "#666666"
                }
            }
        },
        "legend": {
            "textStyle": {
                "color": "#999999"
            }
        },
        "tooltip": {
            "axisPointer": {
                "lineStyle": {
                    "color": "#cccccc",
                    "width": 1
                },
                "crossStyle": {
                    "color": "#cccccc",
                    "width": 1
                }
            }
        },
        "timeline": {
            "lineStyle": {
                "color": "#893448",
                "width": 1
            },
            "itemStyle": {
                "normal": {
                    "color": "#893448",
                    "borderWidth": 1
                },
                "emphasis": {
                    "color": "#ffb248"
                }
            },
            "controlStyle": {
                "normal": {
                    "color": "#893448",
                    "borderColor": "#893448",
                    "borderWidth": 0.5
                },
                "emphasis": {
                    "color": "#893448",
                    "borderColor": "#893448",
                    "borderWidth": 0.5
                }
            },
            "checkpointStyle": {
                "color": "#eb8146",
                "borderColor": "rgba(255,178,72,0.41)"
            },
            "label": {
                "normal": {
                    "textStyle": {
                        "color": "#893448"
                    }
                },
                "emphasis": {
                    "textStyle": {
                        "color": "#893448"
                    }
                }
            }
        },
        "visualMap": {
            "color": [
                "#893448",
                "#d95850",
                "#eb8146",
                "#ffb248",
                "#f2d643",
                "rgb(247,238,173)"
            ]
        },
        "dataZoom": {
            "backgroundColor": "rgba(255,255,255,0)",
            "dataBackgroundColor": "rgba(255,178,72,0.5)",
            "fillerColor": "rgba(255,178,72,0.15)",
            "handleColor": "#ffb248",
            "handleSize": "100%",
            "textStyle": {
                "color": "#333333"
            }
        },
        "markPoint": {
            "label": {
                "normal": {
                    "textStyle": {
                        "color": "#ffffff"
                    }
                },
                "emphasis": {
                    "textStyle": {
                        "color": "#ffffff"
                    }
                }
            }
        }
    });
}));
zq-erp/src/main/resources/static/plugin/echarts/macarons.js
New file
@@ -0,0 +1,198 @@
(function (root, factory) {
    if (typeof define === 'function' && define.amd) {
        // AMD. Register as an anonymous module.
        define(['exports', 'echarts'], factory);
    } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {
        // CommonJS
        factory(exports, require('echarts'));
    } else {
        // Browser globals
        factory({}, root.echarts);
    }
}(this, function (exports, echarts) {
    var log = function (msg) {
        if (typeof console !== 'undefined') {
            console && console.error && console.error(msg);
        }
    };
    if (!echarts) {
        log('ECharts is not Loaded');
        return;
    }
    var colorPalette = [
        '#2ec7c9','#b6a2de','#5ab1ef','#ffb980','#d87a80',
        '#8d98b3','#e5cf0d','#97b552','#95706d','#dc69aa',
        '#07a2a4','#9a7fd1','#588dd5','#f5994e','#c05050',
        '#59678c','#c9ab00','#7eb00a','#6f5553','#c14089'
    ];
    var theme = {
        color: colorPalette,
        title: {
            textStyle: {
                fontWeight: 'normal',
                color: '#008acd'
            }
        },
        visualMap: {
            itemWidth: 15,
            color: ['#5ab1ef','#e0ffff']
        },
        toolbox: {
            iconStyle: {
                normal: {
                    borderColor: colorPalette[0]
                }
            }
        },
        tooltip: {
            backgroundColor: 'rgba(50,50,50,0.5)',
            axisPointer : {
                type : 'line',
                lineStyle : {
                    color: '#008acd'
                },
                crossStyle: {
                    color: '#008acd'
                },
                shadowStyle : {
                    color: 'rgba(200,200,200,0.2)'
                }
            }
        },
        dataZoom: {
            dataBackgroundColor: '#efefff',
            fillerColor: 'rgba(182,162,222,0.2)',
            handleColor: '#008acd'
        },
        grid: {
            borderColor: '#eee'
        },
        categoryAxis: {
            axisLine: {
                lineStyle: {
                    color: '#008acd'
                }
            },
            splitLine: {
                lineStyle: {
                    color: ['#eee']
                }
            }
        },
        valueAxis: {
            axisLine: {
                lineStyle: {
                    color: '#008acd'
                }
            },
            splitArea : {
                show : true,
                areaStyle : {
                    color: ['rgba(250,250,250,0.1)','rgba(200,200,200,0.1)']
                }
            },
            splitLine: {
                lineStyle: {
                    color: ['#eee']
                }
            }
        },
        timeline : {
            lineStyle : {
                color : '#008acd'
            },
            controlStyle : {
                normal : { color : '#008acd'},
                emphasis : { color : '#008acd'}
            },
            symbol : 'emptyCircle',
            symbolSize : 3
        },
        line: {
            smooth : true,
            symbol: 'emptyCircle',
            symbolSize: 3
        },
        candlestick: {
            itemStyle: {
                normal: {
                    color: '#d87a80',
                    color0: '#2ec7c9',
                    lineStyle: {
                        color: '#d87a80',
                        color0: '#2ec7c9'
                    }
                }
            }
        },
        scatter: {
            symbol: 'circle',
            symbolSize: 4
        },
        map: {
            label: {
                normal: {
                    textStyle: {
                        color: '#d87a80'
                    }
                }
            },
            itemStyle: {
                normal: {
                    borderColor: '#eee',
                    areaColor: '#ddd'
                },
                emphasis: {
                    areaColor: '#fe994e'
                }
            }
        },
        graph: {
            color: colorPalette
        },
        gauge : {
            axisLine: {
                lineStyle: {
                    color: [[0.2, '#2ec7c9'],[0.8, '#5ab1ef'],[1, '#d87a80']],
                    width: 10
                }
            },
            axisTick: {
                splitNumber: 10,
                length :15,
                lineStyle: {
                    color: 'auto'
                }
            },
            splitLine: {
                length :22,
                lineStyle: {
                    color: 'auto'
                }
            },
            pointer : {
                width : 5
            }
        }
    };
    echarts.registerTheme('macarons', theme);
}));
zq-erp/src/main/resources/static/plugin/moment.min.js
New file
@@ -0,0 +1 @@
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.moment=t()}(this,function(){"use strict";var e,i;function c(){return e.apply(null,arguments)}function o(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function u(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function l(e){return void 0===e}function h(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function d(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function f(e,t){var n,s=[];for(n=0;n<e.length;++n)s.push(t(e[n],n));return s}function m(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function _(e,t){for(var n in t)m(t,n)&&(e[n]=t[n]);return m(t,"toString")&&(e.toString=t.toString),m(t,"valueOf")&&(e.valueOf=t.valueOf),e}function y(e,t,n,s){return Tt(e,t,n,s,!0).utc()}function g(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function v(e){if(null==e._isValid){var t=g(e),n=i.call(t.parsedDateParts,function(e){return null!=e}),s=!isNaN(e._d.getTime())&&t.overflow<0&&!t.empty&&!t.invalidMonth&&!t.invalidWeekday&&!t.weekdayMismatch&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&n);if(e._strict&&(s=s&&0===t.charsLeftOver&&0===t.unusedTokens.length&&void 0===t.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return s;e._isValid=s}return e._isValid}function p(e){var t=y(NaN);return null!=e?_(g(t),e):g(t).userInvalidated=!0,t}i=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),n=t.length>>>0,s=0;s<n;s++)if(s in t&&e.call(this,t[s],s,t))return!0;return!1};var r=c.momentProperties=[];function w(e,t){var n,s,i;if(l(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),l(t._i)||(e._i=t._i),l(t._f)||(e._f=t._f),l(t._l)||(e._l=t._l),l(t._strict)||(e._strict=t._strict),l(t._tzm)||(e._tzm=t._tzm),l(t._isUTC)||(e._isUTC=t._isUTC),l(t._offset)||(e._offset=t._offset),l(t._pf)||(e._pf=g(t)),l(t._locale)||(e._locale=t._locale),0<r.length)for(n=0;n<r.length;n++)l(i=t[s=r[n]])||(e[s]=i);return e}var t=!1;function M(e){w(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===t&&(t=!0,c.updateOffset(this),t=!1)}function k(e){return e instanceof M||null!=e&&null!=e._isAMomentObject}function S(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function D(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=S(t)),n}function a(e,t,n){var s,i=Math.min(e.length,t.length),r=Math.abs(e.length-t.length),a=0;for(s=0;s<i;s++)(n&&e[s]!==t[s]||!n&&D(e[s])!==D(t[s]))&&a++;return a+r}function Y(e){!1===c.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function n(i,r){var a=!0;return _(function(){if(null!=c.deprecationHandler&&c.deprecationHandler(null,i),a){for(var e,t=[],n=0;n<arguments.length;n++){if(e="","object"==typeof arguments[n]){for(var s in e+="\n["+n+"] ",arguments[0])e+=s+": "+arguments[0][s]+", ";e=e.slice(0,-2)}else e=arguments[n];t.push(e)}Y(i+"\nArguments: "+Array.prototype.slice.call(t).join("")+"\n"+(new Error).stack),a=!1}return r.apply(this,arguments)},r)}var s,O={};function T(e,t){null!=c.deprecationHandler&&c.deprecationHandler(e,t),O[e]||(Y(t),O[e]=!0)}function b(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function x(e,t){var n,s=_({},e);for(n in t)m(t,n)&&(u(e[n])&&u(t[n])?(s[n]={},_(s[n],e[n]),_(s[n],t[n])):null!=t[n]?s[n]=t[n]:delete s[n]);for(n in e)m(e,n)&&!m(t,n)&&u(e[n])&&(s[n]=_({},s[n]));return s}function P(e){null!=e&&this.set(e)}c.suppressDeprecationWarnings=!1,c.deprecationHandler=null,s=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)m(e,t)&&n.push(t);return n};var W={};function C(e,t){var n=e.toLowerCase();W[n]=W[n+"s"]=W[t]=e}function H(e){return"string"==typeof e?W[e]||W[e.toLowerCase()]:void 0}function R(e){var t,n,s={};for(n in e)m(e,n)&&(t=H(n))&&(s[t]=e[n]);return s}var U={};function F(e,t){U[e]=t}function L(e,t,n){var s=""+Math.abs(e),i=t-s.length;return(0<=e?n?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+s}var N=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,G=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,V={},E={};function I(e,t,n,s){var i=s;"string"==typeof s&&(i=function(){return this[s]()}),e&&(E[e]=i),t&&(E[t[0]]=function(){return L(i.apply(this,arguments),t[1],t[2])}),n&&(E[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function A(e,t){return e.isValid()?(t=j(t,e.localeData()),V[t]=V[t]||function(s){var e,i,t,r=s.match(N);for(e=0,i=r.length;e<i;e++)E[r[e]]?r[e]=E[r[e]]:r[e]=(t=r[e]).match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"");return function(e){var t,n="";for(t=0;t<i;t++)n+=b(r[t])?r[t].call(e,s):r[t];return n}}(t),V[t](e)):e.localeData().invalidDate()}function j(e,t){var n=5;function s(e){return t.longDateFormat(e)||e}for(G.lastIndex=0;0<=n&&G.test(e);)e=e.replace(G,s),G.lastIndex=0,n-=1;return e}var Z=/\d/,z=/\d\d/,$=/\d{3}/,q=/\d{4}/,J=/[+-]?\d{6}/,B=/\d\d?/,Q=/\d\d\d\d?/,X=/\d\d\d\d\d\d?/,K=/\d{1,3}/,ee=/\d{1,4}/,te=/[+-]?\d{1,6}/,ne=/\d+/,se=/[+-]?\d+/,ie=/Z|[+-]\d\d:?\d\d/gi,re=/Z|[+-]\d\d(?::?\d\d)?/gi,ae=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,oe={};function ue(e,n,s){oe[e]=b(n)?n:function(e,t){return e&&s?s:n}}function le(e,t){return m(oe,e)?oe[e](t._strict,t._locale):new RegExp(he(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,s,i){return t||n||s||i})))}function he(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var de={};function ce(e,n){var t,s=n;for("string"==typeof e&&(e=[e]),h(n)&&(s=function(e,t){t[n]=D(e)}),t=0;t<e.length;t++)de[e[t]]=s}function fe(e,i){ce(e,function(e,t,n,s){n._w=n._w||{},i(e,n._w,n,s)})}var me=0,_e=1,ye=2,ge=3,ve=4,pe=5,we=6,Me=7,ke=8;function Se(e){return De(e)?366:365}function De(e){return e%4==0&&e%100!=0||e%400==0}I("Y",0,0,function(){var e=this.year();return e<=9999?""+e:"+"+e}),I(0,["YY",2],0,function(){return this.year()%100}),I(0,["YYYY",4],0,"year"),I(0,["YYYYY",5],0,"year"),I(0,["YYYYYY",6,!0],0,"year"),C("year","y"),F("year",1),ue("Y",se),ue("YY",B,z),ue("YYYY",ee,q),ue("YYYYY",te,J),ue("YYYYYY",te,J),ce(["YYYYY","YYYYYY"],me),ce("YYYY",function(e,t){t[me]=2===e.length?c.parseTwoDigitYear(e):D(e)}),ce("YY",function(e,t){t[me]=c.parseTwoDigitYear(e)}),ce("Y",function(e,t){t[me]=parseInt(e,10)}),c.parseTwoDigitYear=function(e){return D(e)+(68<D(e)?1900:2e3)};var Ye,Oe=Te("FullYear",!0);function Te(t,n){return function(e){return null!=e?(xe(this,t,e),c.updateOffset(this,n),this):be(this,t)}}function be(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function xe(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&De(e.year())&&1===e.month()&&29===e.date()?e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),Pe(n,e.month())):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function Pe(e,t){if(isNaN(e)||isNaN(t))return NaN;var n,s=(t%(n=12)+n)%n;return e+=(t-s)/12,1===s?De(e)?29:28:31-s%7%2}Ye=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1},I("M",["MM",2],"Mo",function(){return this.month()+1}),I("MMM",0,0,function(e){return this.localeData().monthsShort(this,e)}),I("MMMM",0,0,function(e){return this.localeData().months(this,e)}),C("month","M"),F("month",8),ue("M",B),ue("MM",B,z),ue("MMM",function(e,t){return t.monthsShortRegex(e)}),ue("MMMM",function(e,t){return t.monthsRegex(e)}),ce(["M","MM"],function(e,t){t[_e]=D(e)-1}),ce(["MMM","MMMM"],function(e,t,n,s){var i=n._locale.monthsParse(e,s,n._strict);null!=i?t[_e]=i:g(n).invalidMonth=e});var We=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,Ce="January_February_March_April_May_June_July_August_September_October_November_December".split("_");var He="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function Re(e,t){var n;if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=D(t);else if(!h(t=e.localeData().monthsParse(t)))return e;return n=Math.min(e.date(),Pe(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,n),e}function Ue(e){return null!=e?(Re(this,e),c.updateOffset(this,!0),this):be(this,"Month")}var Fe=ae;var Le=ae;function Ne(){function e(e,t){return t.length-e.length}var t,n,s=[],i=[],r=[];for(t=0;t<12;t++)n=y([2e3,t]),s.push(this.monthsShort(n,"")),i.push(this.months(n,"")),r.push(this.months(n,"")),r.push(this.monthsShort(n,""));for(s.sort(e),i.sort(e),r.sort(e),t=0;t<12;t++)s[t]=he(s[t]),i[t]=he(i[t]);for(t=0;t<24;t++)r[t]=he(r[t]);this._monthsRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+s.join("|")+")","i")}function Ge(e){var t;if(e<100&&0<=e){var n=Array.prototype.slice.call(arguments);n[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)}else t=new Date(Date.UTC.apply(null,arguments));return t}function Ve(e,t,n){var s=7+t-n;return-((7+Ge(e,0,s).getUTCDay()-t)%7)+s-1}function Ee(e,t,n,s,i){var r,a,o=1+7*(t-1)+(7+n-s)%7+Ve(e,s,i);return a=o<=0?Se(r=e-1)+o:o>Se(e)?(r=e+1,o-Se(e)):(r=e,o),{year:r,dayOfYear:a}}function Ie(e,t,n){var s,i,r=Ve(e.year(),t,n),a=Math.floor((e.dayOfYear()-r-1)/7)+1;return a<1?s=a+Ae(i=e.year()-1,t,n):a>Ae(e.year(),t,n)?(s=a-Ae(e.year(),t,n),i=e.year()+1):(i=e.year(),s=a),{week:s,year:i}}function Ae(e,t,n){var s=Ve(e,t,n),i=Ve(e+1,t,n);return(Se(e)-s+i)/7}I("w",["ww",2],"wo","week"),I("W",["WW",2],"Wo","isoWeek"),C("week","w"),C("isoWeek","W"),F("week",5),F("isoWeek",5),ue("w",B),ue("ww",B,z),ue("W",B),ue("WW",B,z),fe(["w","ww","W","WW"],function(e,t,n,s){t[s.substr(0,1)]=D(e)});function je(e,t){return e.slice(t,7).concat(e.slice(0,t))}I("d",0,"do","day"),I("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),I("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),I("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),I("e",0,0,"weekday"),I("E",0,0,"isoWeekday"),C("day","d"),C("weekday","e"),C("isoWeekday","E"),F("day",11),F("weekday",11),F("isoWeekday",11),ue("d",B),ue("e",B),ue("E",B),ue("dd",function(e,t){return t.weekdaysMinRegex(e)}),ue("ddd",function(e,t){return t.weekdaysShortRegex(e)}),ue("dddd",function(e,t){return t.weekdaysRegex(e)}),fe(["dd","ddd","dddd"],function(e,t,n,s){var i=n._locale.weekdaysParse(e,s,n._strict);null!=i?t.d=i:g(n).invalidWeekday=e}),fe(["d","e","E"],function(e,t,n,s){t[s]=D(e)});var Ze="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");var ze="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");var $e="Su_Mo_Tu_We_Th_Fr_Sa".split("_");var qe=ae;var Je=ae;var Be=ae;function Qe(){function e(e,t){return t.length-e.length}var t,n,s,i,r,a=[],o=[],u=[],l=[];for(t=0;t<7;t++)n=y([2e3,1]).day(t),s=this.weekdaysMin(n,""),i=this.weekdaysShort(n,""),r=this.weekdays(n,""),a.push(s),o.push(i),u.push(r),l.push(s),l.push(i),l.push(r);for(a.sort(e),o.sort(e),u.sort(e),l.sort(e),t=0;t<7;t++)o[t]=he(o[t]),u[t]=he(u[t]),l[t]=he(l[t]);this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+a.join("|")+")","i")}function Xe(){return this.hours()%12||12}function Ke(e,t){I(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function et(e,t){return t._meridiemParse}I("H",["HH",2],0,"hour"),I("h",["hh",2],0,Xe),I("k",["kk",2],0,function(){return this.hours()||24}),I("hmm",0,0,function(){return""+Xe.apply(this)+L(this.minutes(),2)}),I("hmmss",0,0,function(){return""+Xe.apply(this)+L(this.minutes(),2)+L(this.seconds(),2)}),I("Hmm",0,0,function(){return""+this.hours()+L(this.minutes(),2)}),I("Hmmss",0,0,function(){return""+this.hours()+L(this.minutes(),2)+L(this.seconds(),2)}),Ke("a",!0),Ke("A",!1),C("hour","h"),F("hour",13),ue("a",et),ue("A",et),ue("H",B),ue("h",B),ue("k",B),ue("HH",B,z),ue("hh",B,z),ue("kk",B,z),ue("hmm",Q),ue("hmmss",X),ue("Hmm",Q),ue("Hmmss",X),ce(["H","HH"],ge),ce(["k","kk"],function(e,t,n){var s=D(e);t[ge]=24===s?0:s}),ce(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),ce(["h","hh"],function(e,t,n){t[ge]=D(e),g(n).bigHour=!0}),ce("hmm",function(e,t,n){var s=e.length-2;t[ge]=D(e.substr(0,s)),t[ve]=D(e.substr(s)),g(n).bigHour=!0}),ce("hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[ge]=D(e.substr(0,s)),t[ve]=D(e.substr(s,2)),t[pe]=D(e.substr(i)),g(n).bigHour=!0}),ce("Hmm",function(e,t,n){var s=e.length-2;t[ge]=D(e.substr(0,s)),t[ve]=D(e.substr(s))}),ce("Hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[ge]=D(e.substr(0,s)),t[ve]=D(e.substr(s,2)),t[pe]=D(e.substr(i))});var tt,nt=Te("Hours",!0),st={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Ce,monthsShort:He,week:{dow:0,doy:6},weekdays:Ze,weekdaysMin:$e,weekdaysShort:ze,meridiemParse:/[ap]\.?m?\.?/i},it={},rt={};function at(e){return e?e.toLowerCase().replace("_","-"):e}function ot(e){var t=null;if(!it[e]&&"undefined"!=typeof module&&module&&module.exports)try{t=tt._abbr,require("./locale/"+e),ut(t)}catch(e){}return it[e]}function ut(e,t){var n;return e&&((n=l(t)?ht(e):lt(e,t))?tt=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),tt._abbr}function lt(e,t){if(null===t)return delete it[e],null;var n,s=st;if(t.abbr=e,null!=it[e])T("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=it[e]._config;else if(null!=t.parentLocale)if(null!=it[t.parentLocale])s=it[t.parentLocale]._config;else{if(null==(n=ot(t.parentLocale)))return rt[t.parentLocale]||(rt[t.parentLocale]=[]),rt[t.parentLocale].push({name:e,config:t}),null;s=n._config}return it[e]=new P(x(s,t)),rt[e]&&rt[e].forEach(function(e){lt(e.name,e.config)}),ut(e),it[e]}function ht(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return tt;if(!o(e)){if(t=ot(e))return t;e=[e]}return function(e){for(var t,n,s,i,r=0;r<e.length;){for(t=(i=at(e[r]).split("-")).length,n=(n=at(e[r+1]))?n.split("-"):null;0<t;){if(s=ot(i.slice(0,t).join("-")))return s;if(n&&n.length>=t&&a(i,n,!0)>=t-1)break;t--}r++}return tt}(e)}function dt(e){var t,n=e._a;return n&&-2===g(e).overflow&&(t=n[_e]<0||11<n[_e]?_e:n[ye]<1||n[ye]>Pe(n[me],n[_e])?ye:n[ge]<0||24<n[ge]||24===n[ge]&&(0!==n[ve]||0!==n[pe]||0!==n[we])?ge:n[ve]<0||59<n[ve]?ve:n[pe]<0||59<n[pe]?pe:n[we]<0||999<n[we]?we:-1,g(e)._overflowDayOfYear&&(t<me||ye<t)&&(t=ye),g(e)._overflowWeeks&&-1===t&&(t=Me),g(e)._overflowWeekday&&-1===t&&(t=ke),g(e).overflow=t),e}function ct(e,t,n){return null!=e?e:null!=t?t:n}function ft(e){var t,n,s,i,r,a=[];if(!e._d){var o,u;for(o=e,u=new Date(c.now()),s=o._useUTC?[u.getUTCFullYear(),u.getUTCMonth(),u.getUTCDate()]:[u.getFullYear(),u.getMonth(),u.getDate()],e._w&&null==e._a[ye]&&null==e._a[_e]&&function(e){var t,n,s,i,r,a,o,u;if(null!=(t=e._w).GG||null!=t.W||null!=t.E)r=1,a=4,n=ct(t.GG,e._a[me],Ie(bt(),1,4).year),s=ct(t.W,1),((i=ct(t.E,1))<1||7<i)&&(u=!0);else{r=e._locale._week.dow,a=e._locale._week.doy;var l=Ie(bt(),r,a);n=ct(t.gg,e._a[me],l.year),s=ct(t.w,l.week),null!=t.d?((i=t.d)<0||6<i)&&(u=!0):null!=t.e?(i=t.e+r,(t.e<0||6<t.e)&&(u=!0)):i=r}s<1||s>Ae(n,r,a)?g(e)._overflowWeeks=!0:null!=u?g(e)._overflowWeekday=!0:(o=Ee(n,s,i,r,a),e._a[me]=o.year,e._dayOfYear=o.dayOfYear)}(e),null!=e._dayOfYear&&(r=ct(e._a[me],s[me]),(e._dayOfYear>Se(r)||0===e._dayOfYear)&&(g(e)._overflowDayOfYear=!0),n=Ge(r,0,e._dayOfYear),e._a[_e]=n.getUTCMonth(),e._a[ye]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=a[t]=s[t];for(;t<7;t++)e._a[t]=a[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[ge]&&0===e._a[ve]&&0===e._a[pe]&&0===e._a[we]&&(e._nextDay=!0,e._a[ge]=0),e._d=(e._useUTC?Ge:function(e,t,n,s,i,r,a){var o;return e<100&&0<=e?(o=new Date(e+400,t,n,s,i,r,a),isFinite(o.getFullYear())&&o.setFullYear(e)):o=new Date(e,t,n,s,i,r,a),o}).apply(null,a),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[ge]=24),e._w&&void 0!==e._w.d&&e._w.d!==i&&(g(e).weekdayMismatch=!0)}}var mt=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,_t=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,yt=/Z|[+-]\d\d(?::?\d\d)?/,gt=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],vt=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],pt=/^\/?Date\((\-?\d+)/i;function wt(e){var t,n,s,i,r,a,o=e._i,u=mt.exec(o)||_t.exec(o);if(u){for(g(e).iso=!0,t=0,n=gt.length;t<n;t++)if(gt[t][1].exec(u[1])){i=gt[t][0],s=!1!==gt[t][2];break}if(null==i)return void(e._isValid=!1);if(u[3]){for(t=0,n=vt.length;t<n;t++)if(vt[t][1].exec(u[3])){r=(u[2]||" ")+vt[t][0];break}if(null==r)return void(e._isValid=!1)}if(!s&&null!=r)return void(e._isValid=!1);if(u[4]){if(!yt.exec(u[4]))return void(e._isValid=!1);a="Z"}e._f=i+(r||"")+(a||""),Yt(e)}else e._isValid=!1}var Mt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;function kt(e,t,n,s,i,r){var a=[function(e){var t=parseInt(e,10);{if(t<=49)return 2e3+t;if(t<=999)return 1900+t}return t}(e),He.indexOf(t),parseInt(n,10),parseInt(s,10),parseInt(i,10)];return r&&a.push(parseInt(r,10)),a}var St={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Dt(e){var t,n,s,i=Mt.exec(e._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(i){var r=kt(i[4],i[3],i[2],i[5],i[6],i[7]);if(t=i[1],n=r,s=e,t&&ze.indexOf(t)!==new Date(n[0],n[1],n[2]).getDay()&&(g(s).weekdayMismatch=!0,!(s._isValid=!1)))return;e._a=r,e._tzm=function(e,t,n){if(e)return St[e];if(t)return 0;var s=parseInt(n,10),i=s%100;return(s-i)/100*60+i}(i[8],i[9],i[10]),e._d=Ge.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),g(e).rfc2822=!0}else e._isValid=!1}function Yt(e){if(e._f!==c.ISO_8601)if(e._f!==c.RFC_2822){e._a=[],g(e).empty=!0;var t,n,s,i,r,a,o,u,l=""+e._i,h=l.length,d=0;for(s=j(e._f,e._locale).match(N)||[],t=0;t<s.length;t++)i=s[t],(n=(l.match(le(i,e))||[])[0])&&(0<(r=l.substr(0,l.indexOf(n))).length&&g(e).unusedInput.push(r),l=l.slice(l.indexOf(n)+n.length),d+=n.length),E[i]?(n?g(e).empty=!1:g(e).unusedTokens.push(i),a=i,u=e,null!=(o=n)&&m(de,a)&&de[a](o,u._a,u,a)):e._strict&&!n&&g(e).unusedTokens.push(i);g(e).charsLeftOver=h-d,0<l.length&&g(e).unusedInput.push(l),e._a[ge]<=12&&!0===g(e).bigHour&&0<e._a[ge]&&(g(e).bigHour=void 0),g(e).parsedDateParts=e._a.slice(0),g(e).meridiem=e._meridiem,e._a[ge]=function(e,t,n){var s;if(null==n)return t;return null!=e.meridiemHour?e.meridiemHour(t,n):(null!=e.isPM&&((s=e.isPM(n))&&t<12&&(t+=12),s||12!==t||(t=0)),t)}(e._locale,e._a[ge],e._meridiem),ft(e),dt(e)}else Dt(e);else wt(e)}function Ot(e){var t,n,s,i,r=e._i,a=e._f;return e._locale=e._locale||ht(e._l),null===r||void 0===a&&""===r?p({nullInput:!0}):("string"==typeof r&&(e._i=r=e._locale.preparse(r)),k(r)?new M(dt(r)):(d(r)?e._d=r:o(a)?function(e){var t,n,s,i,r;if(0===e._f.length)return g(e).invalidFormat=!0,e._d=new Date(NaN);for(i=0;i<e._f.length;i++)r=0,t=w({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[i],Yt(t),v(t)&&(r+=g(t).charsLeftOver,r+=10*g(t).unusedTokens.length,g(t).score=r,(null==s||r<s)&&(s=r,n=t));_(e,n||t)}(e):a?Yt(e):l(n=(t=e)._i)?t._d=new Date(c.now()):d(n)?t._d=new Date(n.valueOf()):"string"==typeof n?(s=t,null===(i=pt.exec(s._i))?(wt(s),!1===s._isValid&&(delete s._isValid,Dt(s),!1===s._isValid&&(delete s._isValid,c.createFromInputFallback(s)))):s._d=new Date(+i[1])):o(n)?(t._a=f(n.slice(0),function(e){return parseInt(e,10)}),ft(t)):u(n)?function(e){if(!e._d){var t=R(e._i);e._a=f([t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],function(e){return e&&parseInt(e,10)}),ft(e)}}(t):h(n)?t._d=new Date(n):c.createFromInputFallback(t),v(e)||(e._d=null),e))}function Tt(e,t,n,s,i){var r,a={};return!0!==n&&!1!==n||(s=n,n=void 0),(u(e)&&function(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(e.hasOwnProperty(t))return!1;return!0}(e)||o(e)&&0===e.length)&&(e=void 0),a._isAMomentObject=!0,a._useUTC=a._isUTC=i,a._l=n,a._i=e,a._f=t,a._strict=s,(r=new M(dt(Ot(a))))._nextDay&&(r.add(1,"d"),r._nextDay=void 0),r}function bt(e,t,n,s){return Tt(e,t,n,s,!1)}c.createFromInputFallback=n("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),c.ISO_8601=function(){},c.RFC_2822=function(){};var xt=n("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=bt.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:p()}),Pt=n("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=bt.apply(null,arguments);return this.isValid()&&e.isValid()?this<e?this:e:p()});function Wt(e,t){var n,s;if(1===t.length&&o(t[0])&&(t=t[0]),!t.length)return bt();for(n=t[0],s=1;s<t.length;++s)t[s].isValid()&&!t[s][e](n)||(n=t[s]);return n}var Ct=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Ht(e){var t=R(e),n=t.year||0,s=t.quarter||0,i=t.month||0,r=t.week||t.isoWeek||0,a=t.day||0,o=t.hour||0,u=t.minute||0,l=t.second||0,h=t.millisecond||0;this._isValid=function(e){for(var t in e)if(-1===Ye.call(Ct,t)||null!=e[t]&&isNaN(e[t]))return!1;for(var n=!1,s=0;s<Ct.length;++s)if(e[Ct[s]]){if(n)return!1;parseFloat(e[Ct[s]])!==D(e[Ct[s]])&&(n=!0)}return!0}(t),this._milliseconds=+h+1e3*l+6e4*u+1e3*o*60*60,this._days=+a+7*r,this._months=+i+3*s+12*n,this._data={},this._locale=ht(),this._bubble()}function Rt(e){return e instanceof Ht}function Ut(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function Ft(e,n){I(e,0,0,function(){var e=this.utcOffset(),t="+";return e<0&&(e=-e,t="-"),t+L(~~(e/60),2)+n+L(~~e%60,2)})}Ft("Z",":"),Ft("ZZ",""),ue("Z",re),ue("ZZ",re),ce(["Z","ZZ"],function(e,t,n){n._useUTC=!0,n._tzm=Nt(re,e)});var Lt=/([\+\-]|\d\d)/gi;function Nt(e,t){var n=(t||"").match(e);if(null===n)return null;var s=((n[n.length-1]||[])+"").match(Lt)||["-",0,0],i=60*s[1]+D(s[2]);return 0===i?0:"+"===s[0]?i:-i}function Gt(e,t){var n,s;return t._isUTC?(n=t.clone(),s=(k(e)||d(e)?e.valueOf():bt(e).valueOf())-n.valueOf(),n._d.setTime(n._d.valueOf()+s),c.updateOffset(n,!1),n):bt(e).local()}function Vt(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function Et(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}c.updateOffset=function(){};var It=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,At=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function jt(e,t){var n,s,i,r=e,a=null;return Rt(e)?r={ms:e._milliseconds,d:e._days,M:e._months}:h(e)?(r={},t?r[t]=e:r.milliseconds=e):(a=It.exec(e))?(n="-"===a[1]?-1:1,r={y:0,d:D(a[ye])*n,h:D(a[ge])*n,m:D(a[ve])*n,s:D(a[pe])*n,ms:D(Ut(1e3*a[we]))*n}):(a=At.exec(e))?(n="-"===a[1]?-1:1,r={y:Zt(a[2],n),M:Zt(a[3],n),w:Zt(a[4],n),d:Zt(a[5],n),h:Zt(a[6],n),m:Zt(a[7],n),s:Zt(a[8],n)}):null==r?r={}:"object"==typeof r&&("from"in r||"to"in r)&&(i=function(e,t){var n;if(!e.isValid()||!t.isValid())return{milliseconds:0,months:0};t=Gt(t,e),e.isBefore(t)?n=zt(e,t):((n=zt(t,e)).milliseconds=-n.milliseconds,n.months=-n.months);return n}(bt(r.from),bt(r.to)),(r={}).ms=i.milliseconds,r.M=i.months),s=new Ht(r),Rt(e)&&m(e,"_locale")&&(s._locale=e._locale),s}function Zt(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function zt(e,t){var n={};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function $t(s,i){return function(e,t){var n;return null===t||isNaN(+t)||(T(i,"moment()."+i+"(period, number) is deprecated. Please use moment()."+i+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),n=e,e=t,t=n),qt(this,jt(e="string"==typeof e?+e:e,t),s),this}}function qt(e,t,n,s){var i=t._milliseconds,r=Ut(t._days),a=Ut(t._months);e.isValid()&&(s=null==s||s,a&&Re(e,be(e,"Month")+a*n),r&&xe(e,"Date",be(e,"Date")+r*n),i&&e._d.setTime(e._d.valueOf()+i*n),s&&c.updateOffset(e,r||a))}jt.fn=Ht.prototype,jt.invalid=function(){return jt(NaN)};var Jt=$t(1,"add"),Bt=$t(-1,"subtract");function Qt(e,t){var n=12*(t.year()-e.year())+(t.month()-e.month()),s=e.clone().add(n,"months");return-(n+(t-s<0?(t-s)/(s-e.clone().add(n-1,"months")):(t-s)/(e.clone().add(n+1,"months")-s)))||0}function Xt(e){var t;return void 0===e?this._locale._abbr:(null!=(t=ht(e))&&(this._locale=t),this)}c.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",c.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Kt=n("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});function en(){return this._locale}var tn=126227808e5;function nn(e,t){return(e%t+t)%t}function sn(e,t,n){return e<100&&0<=e?new Date(e+400,t,n)-tn:new Date(e,t,n).valueOf()}function rn(e,t,n){return e<100&&0<=e?Date.UTC(e+400,t,n)-tn:Date.UTC(e,t,n)}function an(e,t){I(0,[e,e.length],0,t)}function on(e,t,n,s,i){var r;return null==e?Ie(this,s,i).year:((r=Ae(e,s,i))<t&&(t=r),function(e,t,n,s,i){var r=Ee(e,t,n,s,i),a=Ge(r.year,0,r.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}.call(this,e,t,n,s,i))}I(0,["gg",2],0,function(){return this.weekYear()%100}),I(0,["GG",2],0,function(){return this.isoWeekYear()%100}),an("gggg","weekYear"),an("ggggg","weekYear"),an("GGGG","isoWeekYear"),an("GGGGG","isoWeekYear"),C("weekYear","gg"),C("isoWeekYear","GG"),F("weekYear",1),F("isoWeekYear",1),ue("G",se),ue("g",se),ue("GG",B,z),ue("gg",B,z),ue("GGGG",ee,q),ue("gggg",ee,q),ue("GGGGG",te,J),ue("ggggg",te,J),fe(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,s){t[s.substr(0,2)]=D(e)}),fe(["gg","GG"],function(e,t,n,s){t[s]=c.parseTwoDigitYear(e)}),I("Q",0,"Qo","quarter"),C("quarter","Q"),F("quarter",7),ue("Q",Z),ce("Q",function(e,t){t[_e]=3*(D(e)-1)}),I("D",["DD",2],"Do","date"),C("date","D"),F("date",9),ue("D",B),ue("DD",B,z),ue("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),ce(["D","DD"],ye),ce("Do",function(e,t){t[ye]=D(e.match(B)[0])});var un=Te("Date",!0);I("DDD",["DDDD",3],"DDDo","dayOfYear"),C("dayOfYear","DDD"),F("dayOfYear",4),ue("DDD",K),ue("DDDD",$),ce(["DDD","DDDD"],function(e,t,n){n._dayOfYear=D(e)}),I("m",["mm",2],0,"minute"),C("minute","m"),F("minute",14),ue("m",B),ue("mm",B,z),ce(["m","mm"],ve);var ln=Te("Minutes",!1);I("s",["ss",2],0,"second"),C("second","s"),F("second",15),ue("s",B),ue("ss",B,z),ce(["s","ss"],pe);var hn,dn=Te("Seconds",!1);for(I("S",0,0,function(){return~~(this.millisecond()/100)}),I(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),I(0,["SSS",3],0,"millisecond"),I(0,["SSSS",4],0,function(){return 10*this.millisecond()}),I(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),I(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),I(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),I(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),I(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),C("millisecond","ms"),F("millisecond",16),ue("S",K,Z),ue("SS",K,z),ue("SSS",K,$),hn="SSSS";hn.length<=9;hn+="S")ue(hn,ne);function cn(e,t){t[we]=D(1e3*("0."+e))}for(hn="S";hn.length<=9;hn+="S")ce(hn,cn);var fn=Te("Milliseconds",!1);I("z",0,0,"zoneAbbr"),I("zz",0,0,"zoneName");var mn=M.prototype;function _n(e){return e}mn.add=Jt,mn.calendar=function(e,t){var n=e||bt(),s=Gt(n,this).startOf("day"),i=c.calendarFormat(this,s)||"sameElse",r=t&&(b(t[i])?t[i].call(this,n):t[i]);return this.format(r||this.localeData().calendar(i,this,bt(n)))},mn.clone=function(){return new M(this)},mn.diff=function(e,t,n){var s,i,r;if(!this.isValid())return NaN;if(!(s=Gt(e,this)).isValid())return NaN;switch(i=6e4*(s.utcOffset()-this.utcOffset()),t=H(t)){case"year":r=Qt(this,s)/12;break;case"month":r=Qt(this,s);break;case"quarter":r=Qt(this,s)/3;break;case"second":r=(this-s)/1e3;break;case"minute":r=(this-s)/6e4;break;case"hour":r=(this-s)/36e5;break;case"day":r=(this-s-i)/864e5;break;case"week":r=(this-s-i)/6048e5;break;default:r=this-s}return n?r:S(r)},mn.endOf=function(e){var t;if(void 0===(e=H(e))||"millisecond"===e||!this.isValid())return this;var n=this._isUTC?rn:sn;switch(e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=36e5-nn(t+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":t=this._d.valueOf(),t+=6e4-nn(t,6e4)-1;break;case"second":t=this._d.valueOf(),t+=1e3-nn(t,1e3)-1;break}return this._d.setTime(t),c.updateOffset(this,!0),this},mn.format=function(e){e||(e=this.isUtc()?c.defaultFormatUtc:c.defaultFormat);var t=A(this,e);return this.localeData().postformat(t)},mn.from=function(e,t){return this.isValid()&&(k(e)&&e.isValid()||bt(e).isValid())?jt({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},mn.fromNow=function(e){return this.from(bt(),e)},mn.to=function(e,t){return this.isValid()&&(k(e)&&e.isValid()||bt(e).isValid())?jt({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},mn.toNow=function(e){return this.to(bt(),e)},mn.get=function(e){return b(this[e=H(e)])?this[e]():this},mn.invalidAt=function(){return g(this).overflow},mn.isAfter=function(e,t){var n=k(e)?e:bt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=H(t)||"millisecond")?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(t).valueOf())},mn.isBefore=function(e,t){var n=k(e)?e:bt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=H(t)||"millisecond")?this.valueOf()<n.valueOf():this.clone().endOf(t).valueOf()<n.valueOf())},mn.isBetween=function(e,t,n,s){var i=k(e)?e:bt(e),r=k(t)?t:bt(t);return!!(this.isValid()&&i.isValid()&&r.isValid())&&("("===(s=s||"()")[0]?this.isAfter(i,n):!this.isBefore(i,n))&&(")"===s[1]?this.isBefore(r,n):!this.isAfter(r,n))},mn.isSame=function(e,t){var n,s=k(e)?e:bt(e);return!(!this.isValid()||!s.isValid())&&("millisecond"===(t=H(t)||"millisecond")?this.valueOf()===s.valueOf():(n=s.valueOf(),this.clone().startOf(t).valueOf()<=n&&n<=this.clone().endOf(t).valueOf()))},mn.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},mn.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},mn.isValid=function(){return v(this)},mn.lang=Kt,mn.locale=Xt,mn.localeData=en,mn.max=Pt,mn.min=xt,mn.parsingFlags=function(){return _({},g(this))},mn.set=function(e,t){if("object"==typeof e)for(var n=function(e){var t=[];for(var n in e)t.push({unit:n,priority:U[n]});return t.sort(function(e,t){return e.priority-t.priority}),t}(e=R(e)),s=0;s<n.length;s++)this[n[s].unit](e[n[s].unit]);else if(b(this[e=H(e)]))return this[e](t);return this},mn.startOf=function(e){var t;if(void 0===(e=H(e))||"millisecond"===e||!this.isValid())return this;var n=this._isUTC?rn:sn;switch(e){case"year":t=n(this.year(),0,1);break;case"quarter":t=n(this.year(),this.month()-this.month()%3,1);break;case"month":t=n(this.year(),this.month(),1);break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=n(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=nn(t+(this._isUTC?0:6e4*this.utcOffset()),36e5);break;case"minute":t=this._d.valueOf(),t-=nn(t,6e4);break;case"second":t=this._d.valueOf(),t-=nn(t,1e3);break}return this._d.setTime(t),c.updateOffset(this,!0),this},mn.subtract=Bt,mn.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},mn.toObject=function(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}},mn.toDate=function(){return new Date(this.valueOf())},mn.toISOString=function(e){if(!this.isValid())return null;var t=!0!==e,n=t?this.clone().utc():this;return n.year()<0||9999<n.year()?A(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):b(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",A(n,"Z")):A(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},mn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var n="["+e+'("]',s=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",i=t+'[")]';return this.format(n+s+"-MM-DD[T]HH:mm:ss.SSS"+i)},mn.toJSON=function(){return this.isValid()?this.toISOString():null},mn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},mn.unix=function(){return Math.floor(this.valueOf()/1e3)},mn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},mn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},mn.year=Oe,mn.isLeapYear=function(){return De(this.year())},mn.weekYear=function(e){return on.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},mn.isoWeekYear=function(e){return on.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},mn.quarter=mn.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},mn.month=Ue,mn.daysInMonth=function(){return Pe(this.year(),this.month())},mn.week=mn.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},mn.isoWeek=mn.isoWeeks=function(e){var t=Ie(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},mn.weeksInYear=function(){var e=this.localeData()._week;return Ae(this.year(),e.dow,e.doy)},mn.isoWeeksInYear=function(){return Ae(this.year(),1,4)},mn.date=un,mn.day=mn.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t,n,s=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(t=e,n=this.localeData(),e="string"!=typeof t?t:isNaN(t)?"number"==typeof(t=n.weekdaysParse(t))?t:null:parseInt(t,10),this.add(e-s,"d")):s},mn.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},mn.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null==e)return this.day()||7;var t,n,s=(t=e,n=this.localeData(),"string"==typeof t?n.weekdaysParse(t)%7||7:isNaN(t)?null:t);return this.day(this.day()%7?s:s-7)},mn.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},mn.hour=mn.hours=nt,mn.minute=mn.minutes=ln,mn.second=mn.seconds=dn,mn.millisecond=mn.milliseconds=fn,mn.utcOffset=function(e,t,n){var s,i=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null==e)return this._isUTC?i:Vt(this);if("string"==typeof e){if(null===(e=Nt(re,e)))return this}else Math.abs(e)<16&&!n&&(e*=60);return!this._isUTC&&t&&(s=Vt(this)),this._offset=e,this._isUTC=!0,null!=s&&this.add(s,"m"),i!==e&&(!t||this._changeInProgress?qt(this,jt(e-i,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,c.updateOffset(this,!0),this._changeInProgress=null)),this},mn.utc=function(e){return this.utcOffset(0,e)},mn.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Vt(this),"m")),this},mn.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=Nt(ie,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},mn.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?bt(e).utcOffset():0,(this.utcOffset()-e)%60==0)},mn.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},mn.isLocal=function(){return!!this.isValid()&&!this._isUTC},mn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},mn.isUtc=Et,mn.isUTC=Et,mn.zoneAbbr=function(){return this._isUTC?"UTC":""},mn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},mn.dates=n("dates accessor is deprecated. Use date instead.",un),mn.months=n("months accessor is deprecated. Use month instead",Ue),mn.years=n("years accessor is deprecated. Use year instead",Oe),mn.zone=n("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}),mn.isDSTShifted=n("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!l(this._isDSTShifted))return this._isDSTShifted;var e={};if(w(e,this),(e=Ot(e))._a){var t=e._isUTC?y(e._a):bt(e._a);this._isDSTShifted=this.isValid()&&0<a(e._a,t.toArray())}else this._isDSTShifted=!1;return this._isDSTShifted});var yn=P.prototype;function gn(e,t,n,s){var i=ht(),r=y().set(s,t);return i[n](r,e)}function vn(e,t,n){if(h(e)&&(t=e,e=void 0),e=e||"",null!=t)return gn(e,t,n,"month");var s,i=[];for(s=0;s<12;s++)i[s]=gn(e,s,n,"month");return i}function pn(e,t,n,s){t=("boolean"==typeof e?h(t)&&(n=t,t=void 0):(t=e,e=!1,h(n=t)&&(n=t,t=void 0)),t||"");var i,r=ht(),a=e?r._week.dow:0;if(null!=n)return gn(t,(n+a)%7,s,"day");var o=[];for(i=0;i<7;i++)o[i]=gn(t,(i+a)%7,s,"day");return o}yn.calendar=function(e,t,n){var s=this._calendar[e]||this._calendar.sameElse;return b(s)?s.call(t,n):s},yn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e])},yn.invalidDate=function(){return this._invalidDate},yn.ordinal=function(e){return this._ordinal.replace("%d",e)},yn.preparse=_n,yn.postformat=_n,yn.relativeTime=function(e,t,n,s){var i=this._relativeTime[n];return b(i)?i(e,t,n,s):i.replace(/%d/i,e)},yn.pastFuture=function(e,t){var n=this._relativeTime[0<e?"future":"past"];return b(n)?n(t):n.replace(/%s/i,t)},yn.set=function(e){var t,n;for(n in e)b(t=e[n])?this[n]=t:this["_"+n]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},yn.months=function(e,t){return e?o(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||We).test(t)?"format":"standalone"][e.month()]:o(this._months)?this._months:this._months.standalone},yn.monthsShort=function(e,t){return e?o(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[We.test(t)?"format":"standalone"][e.month()]:o(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},yn.monthsParse=function(e,t,n){var s,i,r;if(this._monthsParseExact)return function(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],s=0;s<12;++s)r=y([2e3,s]),this._shortMonthsParse[s]=this.monthsShort(r,"").toLocaleLowerCase(),this._longMonthsParse[s]=this.months(r,"").toLocaleLowerCase();return n?"MMM"===t?-1!==(i=Ye.call(this._shortMonthsParse,a))?i:null:-1!==(i=Ye.call(this._longMonthsParse,a))?i:null:"MMM"===t?-1!==(i=Ye.call(this._shortMonthsParse,a))?i:-1!==(i=Ye.call(this._longMonthsParse,a))?i:null:-1!==(i=Ye.call(this._longMonthsParse,a))?i:-1!==(i=Ye.call(this._shortMonthsParse,a))?i:null}.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;s<12;s++){if(i=y([2e3,s]),n&&!this._longMonthsParse[s]&&(this._longMonthsParse[s]=new RegExp("^"+this.months(i,"").replace(".","")+"$","i"),this._shortMonthsParse[s]=new RegExp("^"+this.monthsShort(i,"").replace(".","")+"$","i")),n||this._monthsParse[s]||(r="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[s]=new RegExp(r.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[s].test(e))return s;if(n&&"MMM"===t&&this._shortMonthsParse[s].test(e))return s;if(!n&&this._monthsParse[s].test(e))return s}},yn.monthsRegex=function(e){return this._monthsParseExact?(m(this,"_monthsRegex")||Ne.call(this),e?this._monthsStrictRegex:this._monthsRegex):(m(this,"_monthsRegex")||(this._monthsRegex=Le),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},yn.monthsShortRegex=function(e){return this._monthsParseExact?(m(this,"_monthsRegex")||Ne.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(m(this,"_monthsShortRegex")||(this._monthsShortRegex=Fe),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},yn.week=function(e){return Ie(e,this._week.dow,this._week.doy).week},yn.firstDayOfYear=function(){return this._week.doy},yn.firstDayOfWeek=function(){return this._week.dow},yn.weekdays=function(e,t){var n=o(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?je(n,this._week.dow):e?n[e.day()]:n},yn.weekdaysMin=function(e){return!0===e?je(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},yn.weekdaysShort=function(e){return!0===e?je(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},yn.weekdaysParse=function(e,t,n){var s,i,r;if(this._weekdaysParseExact)return function(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],s=0;s<7;++s)r=y([2e3,1]).day(s),this._minWeekdaysParse[s]=this.weekdaysMin(r,"").toLocaleLowerCase(),this._shortWeekdaysParse[s]=this.weekdaysShort(r,"").toLocaleLowerCase(),this._weekdaysParse[s]=this.weekdays(r,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(i=Ye.call(this._weekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:null:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:null:"dddd"===t?-1!==(i=Ye.call(this._weekdaysParse,a))?i:-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:-1!==(i=Ye.call(this._weekdaysParse,a))?i:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:null:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:-1!==(i=Ye.call(this._weekdaysParse,a))?i:-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:null}.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),s=0;s<7;s++){if(i=y([2e3,1]).day(s),n&&!this._fullWeekdaysParse[s]&&(this._fullWeekdaysParse[s]=new RegExp("^"+this.weekdays(i,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[s]=new RegExp("^"+this.weekdaysShort(i,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[s]=new RegExp("^"+this.weekdaysMin(i,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[s]||(r="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[s]=new RegExp(r.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[s].test(e))return s;if(n&&"ddd"===t&&this._shortWeekdaysParse[s].test(e))return s;if(n&&"dd"===t&&this._minWeekdaysParse[s].test(e))return s;if(!n&&this._weekdaysParse[s].test(e))return s}},yn.weekdaysRegex=function(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Qe.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(m(this,"_weekdaysRegex")||(this._weekdaysRegex=qe),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},yn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Qe.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(m(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Je),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},yn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Qe.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(m(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Be),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},yn.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},yn.meridiem=function(e,t,n){return 11<e?n?"pm":"PM":n?"am":"AM"},ut("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===D(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),c.lang=n("moment.lang is deprecated. Use moment.locale instead.",ut),c.langData=n("moment.langData is deprecated. Use moment.localeData instead.",ht);var wn=Math.abs;function Mn(e,t,n,s){var i=jt(t,n);return e._milliseconds+=s*i._milliseconds,e._days+=s*i._days,e._months+=s*i._months,e._bubble()}function kn(e){return e<0?Math.floor(e):Math.ceil(e)}function Sn(e){return 4800*e/146097}function Dn(e){return 146097*e/4800}function Yn(e){return function(){return this.as(e)}}var On=Yn("ms"),Tn=Yn("s"),bn=Yn("m"),xn=Yn("h"),Pn=Yn("d"),Wn=Yn("w"),Cn=Yn("M"),Hn=Yn("Q"),Rn=Yn("y");function Un(e){return function(){return this.isValid()?this._data[e]:NaN}}var Fn=Un("milliseconds"),Ln=Un("seconds"),Nn=Un("minutes"),Gn=Un("hours"),Vn=Un("days"),En=Un("months"),In=Un("years");var An=Math.round,jn={ss:44,s:45,m:45,h:22,d:26,M:11};var Zn=Math.abs;function zn(e){return(0<e)-(e<0)||+e}function $n(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n=Zn(this._milliseconds)/1e3,s=Zn(this._days),i=Zn(this._months);t=S((e=S(n/60))/60),n%=60,e%=60;var r=S(i/12),a=i%=12,o=s,u=t,l=e,h=n?n.toFixed(3).replace(/\.?0+$/,""):"",d=this.asSeconds();if(!d)return"P0D";var c=d<0?"-":"",f=zn(this._months)!==zn(d)?"-":"",m=zn(this._days)!==zn(d)?"-":"",_=zn(this._milliseconds)!==zn(d)?"-":"";return c+"P"+(r?f+r+"Y":"")+(a?f+a+"M":"")+(o?m+o+"D":"")+(u||l||h?"T":"")+(u?_+u+"H":"")+(l?_+l+"M":"")+(h?_+h+"S":"")}var qn=Ht.prototype;return qn.isValid=function(){return this._isValid},qn.abs=function(){var e=this._data;return this._milliseconds=wn(this._milliseconds),this._days=wn(this._days),this._months=wn(this._months),e.milliseconds=wn(e.milliseconds),e.seconds=wn(e.seconds),e.minutes=wn(e.minutes),e.hours=wn(e.hours),e.months=wn(e.months),e.years=wn(e.years),this},qn.add=function(e,t){return Mn(this,e,t,1)},qn.subtract=function(e,t){return Mn(this,e,t,-1)},qn.as=function(e){if(!this.isValid())return NaN;var t,n,s=this._milliseconds;if("month"===(e=H(e))||"quarter"===e||"year"===e)switch(t=this._days+s/864e5,n=this._months+Sn(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(Dn(this._months)),e){case"week":return t/7+s/6048e5;case"day":return t+s/864e5;case"hour":return 24*t+s/36e5;case"minute":return 1440*t+s/6e4;case"second":return 86400*t+s/1e3;case"millisecond":return Math.floor(864e5*t)+s;default:throw new Error("Unknown unit "+e)}},qn.asMilliseconds=On,qn.asSeconds=Tn,qn.asMinutes=bn,qn.asHours=xn,qn.asDays=Pn,qn.asWeeks=Wn,qn.asMonths=Cn,qn.asQuarters=Hn,qn.asYears=Rn,qn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*D(this._months/12):NaN},qn._bubble=function(){var e,t,n,s,i,r=this._milliseconds,a=this._days,o=this._months,u=this._data;return 0<=r&&0<=a&&0<=o||r<=0&&a<=0&&o<=0||(r+=864e5*kn(Dn(o)+a),o=a=0),u.milliseconds=r%1e3,e=S(r/1e3),u.seconds=e%60,t=S(e/60),u.minutes=t%60,n=S(t/60),u.hours=n%24,o+=i=S(Sn(a+=S(n/24))),a-=kn(Dn(i)),s=S(o/12),o%=12,u.days=a,u.months=o,u.years=s,this},qn.clone=function(){return jt(this)},qn.get=function(e){return e=H(e),this.isValid()?this[e+"s"]():NaN},qn.milliseconds=Fn,qn.seconds=Ln,qn.minutes=Nn,qn.hours=Gn,qn.days=Vn,qn.weeks=function(){return S(this.days()/7)},qn.months=En,qn.years=In,qn.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t,n,s,i,r,a,o,u,l,h,d,c=this.localeData(),f=(n=!e,s=c,i=jt(t=this).abs(),r=An(i.as("s")),a=An(i.as("m")),o=An(i.as("h")),u=An(i.as("d")),l=An(i.as("M")),h=An(i.as("y")),(d=r<=jn.ss&&["s",r]||r<jn.s&&["ss",r]||a<=1&&["m"]||a<jn.m&&["mm",a]||o<=1&&["h"]||o<jn.h&&["hh",o]||u<=1&&["d"]||u<jn.d&&["dd",u]||l<=1&&["M"]||l<jn.M&&["MM",l]||h<=1&&["y"]||["yy",h])[2]=n,d[3]=0<+t,d[4]=s,function(e,t,n,s,i){return i.relativeTime(t||1,!!n,e,s)}.apply(null,d));return e&&(f=c.pastFuture(+this,f)),c.postformat(f)},qn.toISOString=$n,qn.toString=$n,qn.toJSON=$n,qn.locale=Xt,qn.localeData=en,qn.toIsoString=n("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",$n),qn.lang=Kt,I("X",0,0,"unix"),I("x",0,0,"valueOf"),ue("x",se),ue("X",/[+-]?\d+(\.\d{1,3})?/),ce("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))}),ce("x",function(e,t,n){n._d=new Date(D(e))}),c.version="2.24.0",e=bt,c.fn=mn,c.min=function(){return Wt("isBefore",[].slice.call(arguments,0))},c.max=function(){return Wt("isAfter",[].slice.call(arguments,0))},c.now=function(){return Date.now?Date.now():+new Date},c.utc=y,c.unix=function(e){return bt(1e3*e)},c.months=function(e,t){return vn(e,t,"months")},c.isDate=d,c.locale=ut,c.invalid=p,c.duration=jt,c.isMoment=k,c.weekdays=function(e,t,n){return pn(e,t,n,"weekdays")},c.parseZone=function(){return bt.apply(null,arguments).parseZone()},c.localeData=ht,c.isDuration=Rt,c.monthsShort=function(e,t){return vn(e,t,"monthsShort")},c.weekdaysMin=function(e,t,n){return pn(e,t,n,"weekdaysMin")},c.defineLocale=lt,c.updateLocale=function(e,t){if(null!=t){var n,s,i=st;null!=(s=ot(e))&&(i=s._config),(n=new P(t=x(i,t))).parentLocale=it[e],it[e]=n,ut(e)}else null!=it[e]&&(null!=it[e].parentLocale?it[e]=it[e].parentLocale:null!=it[e]&&delete it[e]);return it[e]},c.locales=function(){return s(it)},c.weekdaysShort=function(e,t,n){return pn(e,t,n,"weekdaysShort")},c.normalizeUnits=H,c.relativeTimeRounding=function(e){return void 0===e?An:"function"==typeof e&&(An=e,!0)},c.relativeTimeThreshold=function(e,t){return void 0!==jn[e]&&(void 0===t?jn[e]:(jn[e]=t,"s"===e&&(jn.ss=t-1),!0))},c.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},c.prototype=mn,c.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},c});
zq-erp/src/main/resources/templates/views/admin/hive-erp/analysis/customerFlow.html
New file
@@ -0,0 +1,190 @@
<!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/plugin/jquery-2.1.4.min.js}"></script>
    <script type="text/javascript" th:src="@{/js/systools/MBase.js}"></script>
</head>
<body class=" container-fluid">
<body class="gray-bg">
<div class="ibox-content">
    <!-- 搜索框部分start -->
    <form class="form-inline" id="serchform">
        <div class="row mb-10">
            <div class="col-sm-8">
                <button id="serach" type="button" class="btn btn-info btn-sm"><i
                        class="fa fa-search"></i> 搜索
                </button>
                <button onclick="myGrid.resetForm()" type="button" class="btn btn-info btn-sm"><i
                        class="fa fa-refresh "></i> 重置
                </button>
            </div>
        </div>
        <div class="form-group mr-20" id="timeBox">
            <label>统计范围</label>
            <input name="beginTime" type="text" autocomplete="off"
                   class="form-control datetimepicker" id="beginTime">-<input
                name="endTime" type="text" class="form-control datetimepicker" autocomplete="off"
                id="endTime">
        </div>
        <div class="form-group mr-20">
            <label>统计单位</label>
            <select name="statisticsUnit" class=" form-control " id="unitSelect"
                    style="width: 80px">
                <option value="时">时</option>
                <option selected="selected" value="日">日</option>
                <option value="月">月</option>
                <option value="年">年</option>
            </select>
        </div>
    </form>
    <!-- 搜索框部分en -->
    <div class="row chartsBox">
        <div class=" col-md-12">
            <div class="echarts" id="echarts-line-chart2"></div>
        </div>
    </div>
</div>
<script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script>
<script type="text/javascript" th:src="@{/plugin/echarts/echarts.all.js}"></script>
<script type="text/javascript" th:src="@{/plugin/echarts/macarons.js}"></script>
<script type="text/javascript" th:src="@{/plugin/dateformat.js}"></script>
<script type="text/javascript" th:src="@{/plugin/StringUtil.js}"></script>
<script type="text/javascript" th:src="@{/plugin/moment.min.js}"></script>
<script type="text/javascript" th:src="@{/js/systools/ChartsUtils.js}"></script>
<script>
    MTools.autoFullSelect();
    $(".select2").select2();
    // 基于准备好的dom,初始化echarts实例
    var myChart2 = echarts.init(document.getElementById('echarts-line-chart2'), 'macarons');
    // 指定图表的配置项和数据
    function getption(title) {
        return {
            title: {
                text: title,
                padding: 20
            },
            legend: {},
            toolbox: {
                show: true,
                feature: {
                    mark: {show: true},
                    dataView: {show: true, readOnly: false},
                    magicType: {show: true, type: ['line', 'bar']},
                    restore: {show: true},
                    saveAsImage: {show: true}
                }
            },
            tooltip: {
                trigger: 'axis'
            },
            xAxis: {
                type: 'category',
                boundaryGap: false,
                axisLabel: {
                    rotate: 30
                },
                splitLine: {
                    show: false,
                },
                data: []
            },
            yAxis: {
                type: 'value'
            },
            dataZoom: [
                {
                    id: 'dataZoomX',
                    type: 'slider',
                    xAxisIndex: [0],
                    filterMode: 'filter'
                }
            ],
            series: [{
                name: '客流量',
                type: 'line',
                smooth: true,
                data: [],
                markLine: {
                    data: [
                        {type: 'average', name: '平均值'}
                    ]
                },
                markPoint: {
                    data: [
                        {type: 'max', name: '最大值'},
                        {type: 'min', name: '最小值'}
                    ]
                },
            }],
            animation: true,
            animationDuration: 1000,
            animationDurationUpdate: 1000,
            animationEasing: 'linear',
            animationEasingUpdate: 'linear',
        }
    }
    ;
    //加载数据
    function loadData() {
        //加载门店客流对比
        myChart2.showLoading();
        $.AjaxProxy({
            p: MForm.toJson("#serchform"),
            c: false,
        }).invoke(basePath+"/admin/analysis/vipVisitTendency",
            function (loj) {
                var map = loj.getValue("mapInfo");
                var option = getption("门店客流趋势对比");
                option.series = map.series;
                option.legend.data = map.legendData;
                option.xAxis.data = map.xAxis;
                console.log(option);
                // 使用刚指定的配置项和数据显示图表。
                myChart2.setOption(option);
                myChart2.hideLoading();
            });
    }
    var ChartsUtils = new ChartsUtils(loadData);
    ChartsUtils.setDataPackTimeValue();
    ChartsUtils.loadChartData();
</script>
</body>
</html>