935090232@qq.com
2021-04-20 b58adf14617cd852296bec9e1ca57978741c9f0a
Merge remote-tracking branch 'origin/score_shop' into score_shop
9 files added
45 files modified
1107 ■■■■ changed files
zq-erp/src/main/java/com/matrix/component/wechat/externalInterface/weixinUtil/WeixinServiceUtil.java 2 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/activity/dao/ActivitySignRecordDao.java 4 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/activity/entity/ActivitySignReceiveRecord.java 6 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignAwardSetService.java 2 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java 2 ●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java 8 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/app/vo/ServiceProjVo.java 15 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/app/vo/ServiceTcVo.java 15 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/common/actions/BusParameterSettingsAction.java 1 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/common/actions/CommonAction.java 2 ●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/common/interceptor/ApiUserLoginInterceptor.java 2 ●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/constance/Dictionary.java 1 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java 7 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/SysProjServicesService.java 2 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java 47 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java 5 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hiveErp/action/DataAnalysisCustomer.java 1 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShareProductAction.java 2 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java 127 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ActivitySignRecordVo.java 39 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SignAwardListVo.java 2 ●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SignBasicInfoVo.java 10 ●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/config/application.properties 16 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignReceiveRecordDao.xml 2 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignRecordDao.xml 10 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml 21 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml 2 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/hive/SysStoreInfoDao.xml 1 ●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopProductCommentDao.xml 2 ●●● patch | view | raw | blame | history
zq-erp/src/main/resources/static/images/sign/jisumiaosha.png patch | view | raw | blame | history
zq-erp/src/main/resources/static/images/sign/meiriqiandao.png patch | view | raw | blame | history
zq-erp/src/main/resources/static/images/sign/shalonghuodong.png patch | view | raw | blame | history
zq-erp/src/main/resources/static/images/sign/signButton.png patch | view | raw | blame | history
zq-erp/src/main/resources/static/images/sign/signHead.png patch | view | raw | blame | history
zq-erp/src/main/resources/static/images/sign/tiantianpingtuan.png patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/activity/activity-market.html 15 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-logistics-info.html 2 ●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-update.html 109 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-writeoff-info.html 2 ●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/activity/activity-sign.html 63 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/daily-sale-list.html 2 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/index.html 2 ●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html 8 ●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/servicceAddForm.html 28 ●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/yyServiceAddForm.html 29 ●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/yypb-form.html 6 ●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/hive/instore/store-list-pl.html 182 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-list-new.html 5 ●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-sale-list.html 2 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/hive/store/projServiceStartpl-list-bak.html 105 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/hive/store/projServiceStartpl-list.html 169 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/index.html 4 ●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/common/login.html 6 ●●●●● patch | view | raw | blame | history
zq-erp/src/test/java/com/matrix/FenxiaoSoreInitTest.java 12 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/component/wechat/externalInterface/weixinUtil/WeixinServiceUtil.java
@@ -25,7 +25,6 @@
import com.matrix.system.common.interceptor.HostInterceptor;
import com.matrix.system.shopXcx.api.tools.WxShopOrderUtil;
import org.apache.log4j.Logger;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@@ -87,7 +86,6 @@
    @NotNull
    private BrandWCPayRequestData buildBrandWCPayRequestData(String desc, String outTradeNo, int price, String openId, String attach, BusParameterSettings notifyUrl) throws Exception {
        // 创建微信支付预付接口
        JsApiPayBusiness jsApiPayBusiness = new JsApiPayBusiness();
zq-erp/src/main/java/com/matrix/system/activity/dao/ActivitySignRecordDao.java
@@ -1,11 +1,14 @@
package com.matrix.system.activity.dao;
import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.matrix.system.activity.entity.ActivitySignRecord;
import com.matrix.system.shopXcx.api.vo.ActivitySignRecordVo;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
 * @description 签到记录表
@@ -17,4 +20,5 @@
    ActivitySignRecord selectOneByActIdAndUserIdLikesignTime(@Param("actId")long actId,
            @Param("userId")Long userId, @Param("format")Date format);
    List<ActivitySignRecordVo> selectRecordByMonth(@Param("actId")Long actId, @Param("userId")Long userId, @Param("date") DateTime date);
}
zq-erp/src/main/java/com/matrix/system/activity/entity/ActivitySignReceiveRecord.java
@@ -51,7 +51,7 @@
    private Long  awardId;
    
    /**
     * 是否已领取(1:待领取2:已领取)
     * 是否已领取(1:待领取2:已领取 3:待配送 4:待收货)
     */
@@ -59,7 +59,9 @@
    public static final int STATE_ING = 1;
    public static final int STATE_DONE = 2;
    public static final int STATE_THREE = 3;
    public static final int STATE_FOUR = 4;
    /**
     * 核销码
     */
zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignAwardSetService.java
@@ -237,8 +237,10 @@
                    activitySignAwardSetUpdate.setUpdateBy(user.getSuName());
                    activitySignAwardSetUpdate.setCompanyId(companyId);
                    activitySignAwardSetUpdate.setActivityId(actId);
                    activitySignAwardSetUpdate.setAwardState(ActivitySignAwardSet.AWARDSTATE_WORK);
                    activitySignAwardSetDao.insert(activitySignAwardSetUpdate);
                }else {
                    activitySignAwardSetUpdate.setAwardState(ActivitySignAwardSet.AWARDSTATE_WORK);
                    activitySignAwardSetDao.updateById(activitySignAwardSetUpdate);
                    arrayListUpdate.add(actSubid);
                }
zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java
@@ -278,7 +278,7 @@
            activitySignWriteoffDao.updateById(activitySignWriteoff);
            //更新领取记录
            ActivitySignReceiveRecord activitySignReceiveRecord = activitySignReceiveRecordDao.selectById(receiveId);
            activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_DONE);
            activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_THREE);
            activitySignReceiveRecord.setConsignee(logisticsSubmitDto.getShr());
            activitySignReceiveRecord.setConsigneeAddress(logisticsSubmitDto.getShdz());
            activitySignReceiveRecord.setConsigneePhone(logisticsSubmitDto.getLxdh());
zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java
@@ -98,20 +98,20 @@
                    break;
                case "1":
                    queryUse.setStatus(Dictionary.TAOCAN_STATUS_YX);
                    queryUse.setIsOver(Dictionary.FLAG_NO_N);
//                    queryUse.setIsOver(Dictionary.FLAG_NO_N);
                    break;
                case "2":
                    queryUse.setTargetFailTime(DateUtil.getDateAfterMonth(new Date(), 1));
                    queryUse.setStatus(Dictionary.TAOCAN_STATUS_YX);
                    queryUse.setIsOver(Dictionary.FLAG_NO_N);
//                    queryUse.setIsOver(Dictionary.FLAG_NO_N);
                    break;
                case "3":
                    queryUse.setStatus(Dictionary.TAOCAN_STATUS_WX);
                    queryUse.setIsOver(Dictionary.FLAG_YES_Y);
//                    queryUse.setIsOver(Dictionary.FLAG_YES_Y);
                    break;
                default:
                    queryUse.setStatus(Dictionary.TAOCAN_STATUS_YX);
                    queryUse.setIsOver(Dictionary.FLAG_NO_N);
//                    queryUse.setIsOver(Dictionary.FLAG_NO_N);
                    break;
            }
        } else {
zq-erp/src/main/java/com/matrix/system/app/vo/ServiceProjVo.java
@@ -39,6 +39,9 @@
    @ApiModelProperty(value = "快过期 1-是 2-否")
    private String isInvalid;
    @ApiModelProperty(value = "项目状态 有效/无效")
    private String status;
    public String getIsInvalid() {
        Date date = DateUtil.getDateAfterMonth(new Date(), 1);
        if (invalidTime != null) {
@@ -112,4 +115,16 @@
    public void setId(Long id) {
        this.id = id;
    }
    public String getStatus() {
        if ("有效".equals(status)) {
            return "1";
        } else {
            return "2";
        }
    }
    public void setStatus(String status) {
        this.status = status;
    }
}
zq-erp/src/main/java/com/matrix/system/app/vo/ServiceTcVo.java
@@ -43,6 +43,9 @@
    @ApiModelProperty(value = "快过期 1-是 2-否")
    private String isInvalid;
    @ApiModelProperty(value = "状态 有效/无效")
    private String status;
    @ApiModelProperty(hidden = true)
    private List<SysProjUse> taocanProjUse;
@@ -135,4 +138,16 @@
    public void setProj(List<ServiceProjVo> proj) {
        this.proj = proj;
    }
    public String getStatus() {
        if ("有效".equals(status)) {
            return "1";
        } else {
            return "2";
        }
    }
    public void setStatus(String status) {
        this.status = status;
    }
}
zq-erp/src/main/java/com/matrix/system/common/actions/BusParameterSettingsAction.java
@@ -11,7 +11,6 @@
import com.matrix.system.hive.bean.ParameterSettings;
import com.matrix.system.hive.dao.ParameterSettingsDao;
import org.apache.ibatis.annotations.Param;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
zq-erp/src/main/java/com/matrix/system/common/actions/CommonAction.java
@@ -56,7 +56,7 @@
    StatisticsBusinessDataJob sjobp;
    @RequestMapping(value = "/job")
    public @ResponseBody  String job() {
        sjobp.executeExt2();
        //sjobp.executeExt2();
        return "1";
    }
zq-erp/src/main/java/com/matrix/system/common/interceptor/ApiUserLoginInterceptor.java
@@ -44,7 +44,7 @@
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    if ("dev".equals(evn)) {
            SysUsers sysUsers = sysUsersDao.selectById(1060L);
            SysUsers sysUsers = sysUsersDao.selectById(1022L);
            request.getSession().setAttribute(MatrixConstance.LOGIN_KEY, sysUsers);
            return true;
        }
zq-erp/src/main/java/com/matrix/system/constance/Dictionary.java
@@ -571,4 +571,5 @@
    String[] COLORS = { "#57c5d2", "#e3565e", "#2f343a", "#4d98db", "#4fbc9d", "#be9d4c"};
    String SERVICE_OVER_BEGIN_END = "SERVICE_OVER_BEGIN_END";
    String SALE_MAN_IS_CONSUME_ACHIEVE = "SALE_MAN_IS_CONSUME_ACHIEVE";
}
zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java
@@ -75,4 +75,11 @@
    List<RankingVo> selectStaffSaleAchieveRanking(@Param("record") AchieveNew achieveNew);
    int deleteByOrderId(@Param("orderId") Long orderId);
    List<AchieveNew> selectSaleManAchieveList(@Param("saleId") Long saleId, @Param("vipId") Long vipId, @Param("date") Date date);
    List<AchieveNew> selectBeautyManAchieveList(@Param("beautyId") Long beautyId, @Param("vipId") Long vipId, @Param("date") Date date);
    int updateAchieveNumOfPeople(@Param("list") List<AchieveNew> list, @Param("num") Double num);
}
zq-erp/src/main/java/com/matrix/system/hive/service/SysProjServicesService.java
@@ -111,4 +111,6 @@
    List<ServiceOrderListVo> findApiServiceOrderListInPage(ServiceOrderListDto serviceOrderListDto, PaginationVO pageVo);
    int findApiServiceOrderListTotal(ServiceOrderListDto serviceOrderListDto);
    public boolean skipServiceOrderStep(String step);
}
zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java
@@ -1,5 +1,6 @@
package com.matrix.system.hive.service.imp;
import cn.hutool.core.collection.CollUtil;
import com.matrix.core.constance.MatrixConstance;
import com.matrix.core.exception.GlobleException;
import com.matrix.core.pojo.PaginationVO;
@@ -21,6 +22,8 @@
import com.matrix.system.hive.dao.SysProjUseDao;
import com.matrix.system.hive.plugin.util.CollectionUtils;
import com.matrix.system.hive.service.AchieveNewService;
import com.matrix.system.hive.service.SysProjServicesService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -45,6 +48,9 @@
    @Autowired
    private SysProjUseDao sysProjUseDao;
    @Autowired
    private SysProjServicesService projServicesService;
    @Override
    public int add(AchieveNew achieveNew) {
@@ -164,6 +170,9 @@
        Long achieveId = projServices.getCreateStaffId();
        // 下单人是否计算消耗业绩
        boolean flag = projServicesService.skipServiceOrderStep(Dictionary.SALE_MAN_IS_CONSUME_ACHIEVE);
        for (SysBeauticianState beauticianState : beauticianStateList) {
            // 是否第一次计算改美疗师
            boolean isFirst = true;
@@ -187,7 +196,26 @@
            achieveNew.setShopId(projServices.getShopId());
            achieveNew.setCompanyId(projServices.getCompanyId());
            achieveNew.setShoppingGoodsId(projUse.getProjId());
            achieveNew.setNumberOfPeople(1D / size);
            if (flag) {
//                if (!achieveId.equals(beauticianState.getStaffId())) {
                    AchieveNew saleMan = new AchieveNew();
                    BeanUtils.copyProperties(achieveNew, saleMan);
                    saleMan.setBeaultId(achieveId);
                    saleAchieveNumOfPeople(saleMan);
                    achieveNewList.add(saleMan);
//                }
            }
            List<AchieveNew> beautyList = achieveNewDao.selectBeautyManAchieveList(beauticianState.getStaffId(), projServices.getVipId(), new Date());
            if (CollUtil.isEmpty(beautyList)) {
                achieveNew.setNumberOfPeople(1D / size);
            } else {
                achieveNew.setNumberOfPeople(1D / (size + beautyList.size()));
                achieveNewDao.updateAchieveNumOfPeople(beautyList, achieveNew.getNumberOfPeople());
            }
            achieveNew.setProjNum(1);
            if (StringUtils.isNotBlank(beauticianState.getExtract())) {
                achieveNew.setProjPercentage(Double.parseDouble(beauticianState.getExtract()));
@@ -209,6 +237,20 @@
            achieveNewDao.batchInsert(achieveNewList);
        }
    }
    /**
     * 顾问人头业绩
     * @param achieveNew
     */
    private void saleAchieveNumOfPeople(AchieveNew achieveNew) {
        List<AchieveNew> saleList = achieveNewDao.selectSaleManAchieveList(achieveNew.getSaleId(), achieveNew.getVipId(), new Date());
        if (CollUtil.isEmpty(saleList)) {
            achieveNew.setNumberOfPeople(1D);
        } else {
            achieveNew.setNumberOfPeople(1D / (1D + saleList.size()));
            achieveNewDao.updateAchieveNumOfPeople(saleList, achieveNew.getNumberOfPeople());
        }
    }
    @Override
@@ -265,7 +307,8 @@
        }
        // 设置顾问人头业绩
        saleAchieveNumOfPeople(achieveNew);
        achieveNew.setOrderType(Dictionary.ORDER_TYPE_SEAL);
        achieveNew.setOrderId(pageOrder.getId());
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java
@@ -879,6 +879,8 @@
        if (skipServiceOrderStep(Dictionary.SERVICE_OVER_BEGIN_END)) {
            projServices.setStartTime(new Date());
            projServices.setState(Dictionary.SERVICE_STATU_FWWC);
        } else {
            projServices.setState(Dictionary.SERVICE_STATU_PLWC);
        }
        // 释放床位资源
//        SysBedState checkBedState = sysBedStateDao.selectBySerIdAndBedId(projServices.getBedId(), projServices.getId());
@@ -1021,7 +1023,8 @@
    /**
     * 跳过服务单某步骤
     */
    private boolean skipServiceOrderStep(String step) {
    @Override
    public boolean skipServiceOrderStep(String step) {
        SysUsers users = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
        ParameterSettings ps = new ParameterSettings();
        ps.setCompanyId(users.getCompanyId());
zq-erp/src/main/java/com/matrix/system/hiveErp/action/DataAnalysisCustomer.java
@@ -11,7 +11,6 @@
import com.matrix.system.hive.service.imp.DataAnalysisCustomerServiceImpl;
import com.matrix.system.hiveErp.analysUtil.*;
import com.matrix.system.hiveErp.dao.TjVipSumDao;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShareProductAction.java
@@ -19,7 +19,6 @@
import com.matrix.system.shopXcx.api.vo.WxActivitiesGroupBuyVO;
import com.matrix.system.shopXcx.bean.*;
import com.matrix.system.shopXcx.dao.*;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
@@ -237,7 +236,6 @@
        return qrcodeImgParam;
    }
    @NotNull
    private QrcodeImgParam getQrcodeImgParam(SysVipInfo loginUser, QrcodeVo qrcodeVo) throws Exception {
        ShopProduct shopProduct = shopProductDao.selectById(qrcodeVo.getProductId());
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java
@@ -1,6 +1,7 @@
package com.matrix.system.shopXcx.api.action;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
@@ -19,7 +20,6 @@
import com.matrix.system.activity.entity.ActivitySignRecord;
import com.matrix.system.activity.entity.ActivitySignWriteoff;
import com.matrix.system.hive.bean.SysVipInfo;
import com.matrix.system.shopXcx.api.dto.ClickSignDTO;
import com.matrix.system.shopXcx.api.dto.SeeAwardTextDto;
import com.matrix.system.shopXcx.api.dto.SignAwardDto;
import com.matrix.system.shopXcx.api.vo.*;
@@ -35,6 +35,9 @@
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
@@ -73,7 +76,14 @@
        Long userId = loginUser.getId();
        //获取签到活动的信息
        SignBasicInfoVo signBasicInfoVo = new SignBasicInfoVo();
        AjaxResult ajaxResult = new AjaxResult();
        ShopActivities shopActivities = shopActivitiesDao.selectOneByCompanyIdAndActTypeAndActStatus(companyId,ShopActivities.ACTIVITIES_TYPE_SIGN,ShopActivities.ACTSTATUS_STATUS_ING);
        if(ObjectUtil.isEmpty(shopActivities)){
            ajaxResult = AjaxResult.buildFailInstance("活动还没有开始");
            ajaxResult.setData(signBasicInfoVo);
            return ajaxResult;
        }
        Long actId = shopActivities.getId();
        signBasicInfoVo.setActName(shopActivities.getActName());
        signBasicInfoVo.setActCode(shopActivities.getActCode());
@@ -81,24 +91,91 @@
        String actContent = shopActivities.getActContent();
        SignBasicInfoJsonVo signBasicInfoJsonVo = JSON.parseObject(actContent, SignBasicInfoJsonVo.class);
        signBasicInfoVo.setSignBasicInfoJsonVo(signBasicInfoJsonVo);
        List<ActivitySignAwardSetVo> activitySignAwardSetVos = activitySignAwardSetDao
                .selectListByActIDAndCompanyId(actId,companyId,ActivitySignAwardSet.AWARDSTATE_WORK);
        signBasicInfoVo.setActivitySignAwardSetVos(activitySignAwardSetVos);
        //今日是否已经参与
        List<ActivitySignAwardSetVo> activitySignAwardSetVos = activitySignAwardSetDao
                .selectListByActIDAndCompanyId(actId,companyId,ActivitySignAwardSet.AWARDSTATE_WORK);
        signBasicInfoVo.setActivitySignAwardSetVos(activitySignAwardSetVos);
        //今日是否已经参与
        ActivitySignRecord activitySignRecord = activitySignRecordDao.selectOneByActIdAndUserIdLikesignTime(actId,userId,new Date());
        if(ObjectUtil.isNotEmpty(activitySignRecord)) {
            signBasicInfoVo.setJoinState(SignBasicInfoVo.JOINSTATE_SIGN);
            signBasicInfoVo.setJoinState(SignBasicInfoVo.JOINSTATE_SIGN);
        }else {
            signBasicInfoVo.setJoinState(SignBasicInfoVo.JOINSTATE_NOTSIGN);
            signBasicInfoVo.setJoinState(SignBasicInfoVo.JOINSTATE_NOTSIGN);
        }
        AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("");
        /**
         * 默认获取当前月份
         *      获取当前月份的天数
         */
        List<ActivitySignRecordVo> activitySignRecordVos = new ArrayList<>();
        //获取当前月的第一天是星期几
        DateTime dateTime = DateUtil.beginOfMonth(DateUtil.date());
        int i = DateUtil.dayOfWeek(dateTime);
        for(int j = 1;j<i;j++){
            ActivitySignRecordVo activitySignRecordVoNull = new ActivitySignRecordVo();
            activitySignRecordVos.add(activitySignRecordVoNull);
        }
        List<String> monthFullDays = getMonthFullDay(DateUtil.year(DateUtil.date()), DateUtil.month(DateUtil.date()) + 1);
        for(String monthFullDay : monthFullDays){
            ActivitySignRecordVo activitySignRecordVo = new ActivitySignRecordVo();
            activitySignRecordVo.setSignTime(monthFullDay);
            activitySignRecordVo.setActivityId(actId);
            activitySignRecordVo.setCompanyId(companyId);
            //对应日期是否已签到
            Date date = DateUtil.parse(monthFullDay);
            ActivitySignRecord activitySignRecordDone = activitySignRecordDao.selectOneByActIdAndUserIdLikesignTime(actId,userId,date);
            if(ObjectUtil.isNotEmpty(activitySignRecordDone)){
                activitySignRecordVo.setState(1);
            }else{
                activitySignRecordVo.setState(2);
            }
            activitySignRecordVos.add(activitySignRecordVo);
        }
        signBasicInfoVo.setActivitySignRecords(activitySignRecordVos);
        //累计签到日期
        int cumulativeDay = getCumulativeDay(actId, userId, DateUtil.date(), 0);
        signBasicInfoVo.setActAumulativeDay(cumulativeDay);
        ajaxResult = AjaxResult.buildSuccessInstance("");
        ajaxResult.setData(signBasicInfoVo);
        return ajaxResult;
    }
    /**
    /**
     *  java 获取 获取某年某月 所有日期(yyyy-mm-dd格式字符串)
     * @param year
     * @param month
     * @return
     */
    public List<String> getMonthFullDay(int year , int month){
        SimpleDateFormat dateFormatYYYYMMDD = new SimpleDateFormat("yyyy-MM-dd");
        List<String> fullDayList = new ArrayList<>(32);
        // 获得当前日期对象
        Calendar cal = Calendar.getInstance();
        cal.clear();// 清除信息
        cal.set(Calendar.YEAR, year);
        // 1月从0开始
        cal.set(Calendar.MONTH, month-1 );
        // 当月1号
        cal.set(Calendar.DAY_OF_MONTH,1);
        int count = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
        for (int j = 1; j <= count ; j++) {
            fullDayList.add(dateFormatYYYYMMDD.format(cal.getTime()));
            cal.add(Calendar.DAY_OF_MONTH,1);
        }
        return fullDayList;
    }
    /**
     * 获取当月的 天数
     * */
    public static int getCurrentMonthDay(Date date) {
        Date beginOfMonth = DateUtil.beginOfMonth(date);
        Date endOfMonth = DateUtil.endOfMonth(date);
        long betweenDay = DateUtil.between(beginOfMonth, endOfMonth, DateUnit.DAY);
        return Integer.parseInt(String.valueOf(betweenDay))+1;
    }
    /**
     * 点击签到
     *
     */
@@ -106,11 +183,12 @@
    @ApiResponses({
            @ApiResponse(code = 200, message = "ok", response = SignSuccessVo.class)
    })
    @PostMapping(value = "/clickSign")
    @GetMapping(value = "/clickSign/{actId}")
    @ResponseBody
    @Transactional
    public AjaxResult clickSign(@RequestBody ClickSignDTO clickSignDTO) {
    public AjaxResult clickSign(@PathVariable("actId") long actId) {
        SysVipInfo user = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
        long actId = clickSignDTO.getActId();
        Long userId = user.getId();
        Long companyId = user.getCompanyId();
        /**
@@ -145,9 +223,9 @@
        ActivitySignRecord activitySignRecordOld = activitySignRecordDao.selectOneByActIdAndUserIdLikesignTime(actId,userId,offsetDay);
        ActivitySignRecord activitySignRecordAdd = new ActivitySignRecord();
        activitySignRecordAdd.setCompanyId(companyId);
        activitySignRecordAdd.setCreateBy(user.getName());
        activitySignRecordAdd.setCreateBy(user.getVipName());
        activitySignRecordAdd.setCreateTime(new Date());
        activitySignRecordAdd.setUpdateBy(user.getName());
        activitySignRecordAdd.setUpdateBy(user.getVipName());
        activitySignRecordAdd.setUpdateTime(new Date());
        activitySignRecordAdd.setActivityId(actId);
        activitySignRecordAdd.setSignTime(date);
@@ -180,12 +258,13 @@
            activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_DONE);
            activitySignReceiveRecord.setActivityId(actId);
            activitySignReceiveRecord.setCompanyId(companyId);
            activitySignReceiveRecord.setCreateBy(user.getName());
            activitySignReceiveRecord.setCreateBy(user.getVipName());
            activitySignReceiveRecord.setCreateTime(new Date());
            activitySignReceiveRecord.setUpdateBy(user.getName());
            activitySignReceiveRecord.setUpdateBy(user.getVipName());
            activitySignReceiveRecord.setUpdateTime(new Date());
            activitySignReceiveRecordDao.insert(activitySignReceiveRecord);
            signSuccessVo.setScoreCnt(activitySignAwardSetNormal.getScoreCnt());
            signSuccessVo.setNormalAwardName(activitySignAwardSetNormal.getAwardName());
            signSuccessVo.setNormalAwardImg(activitySignAwardSetNormal.getIntroduceImg());
        }
@@ -221,9 +300,9 @@
            activitySignReceiveRecord.setActivityId(actId);
            activitySignReceiveRecord.setCompanyId(companyId);
            activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_DONE);
            activitySignReceiveRecord.setCreateBy(user.getName());
            activitySignReceiveRecord.setCreateBy(user.getVipName());
            activitySignReceiveRecord.setCreateTime(new Date());
            activitySignReceiveRecord.setUpdateBy(user.getName());
            activitySignReceiveRecord.setUpdateBy(user.getVipName());
            activitySignReceiveRecord.setUpdateTime(new Date());
            /**
             * 奖项类型(1:自定义产品2:积分3:优惠券4:店铺商品)
@@ -289,9 +368,9 @@
                activitySignWriteoff.setUserId(userId);
                activitySignWriteoff.setCompanyId(companyId);
                activitySignWriteoff.setReceiveId(activitySignReceiveRecord.getId());
                activitySignWriteoff.setCreateBy(user.getName());
                activitySignWriteoff.setCreateBy(user.getVipName());
                activitySignWriteoff.setCreateTime(new Date());
                activitySignWriteoff.setUpdateBy(user.getName());
                activitySignWriteoff.setUpdateBy(user.getVipName());
                activitySignWriteoff.setUpdateTime(new Date());
                activitySignWriteoffDao.insert(activitySignWriteoff);
            }
@@ -366,7 +445,7 @@
     *
     * @return
     */
    @ApiOperation(value = "查看劵码", notes = "")
    @ApiOperation(value = "物流配送确认", notes = "")
    @PostMapping(value = "/logisticsInsure")
    @ApiResponses({
            @ApiResponse(code = 200, message = "ok", response = SeeAwardTextVo.class)
zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/ActivitySignRecordVo.java
New file
@@ -0,0 +1,39 @@
package com.matrix.system.shopXcx.api.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "ActivitySignRecordVo", description = "签到明细")
public class ActivitySignRecordVo {
    @ApiModelProperty(value ="签到状态 1:已签到 2:未签到")
    private int state;
    /**
     * 签到时间
     */
    @ApiModelProperty(value ="签到时间")
    private String  signTime;
    /**
     * 活动主表ID
     */
    @ApiModelProperty(value ="活动主表ID")
    private Long  activityId;
    /**
     * 公司ID
     */
    @ApiModelProperty(value ="公司ID")
    private Long  companyId;
}
zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SignAwardListVo.java
@@ -27,7 +27,7 @@
    @ApiModelProperty(value ="数量")
    private int  total;
    
    @ApiModelProperty(value ="是否已领取(1:待领取2:已领取)")
    @ApiModelProperty(value ="是否已领取(1:待领取2:已领取 3:待配送 4:待收货)")
    private Integer  state;
    
    @ApiModelProperty(value ="领取时间")
zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SignBasicInfoVo.java
@@ -1,13 +1,12 @@
package com.matrix.system.shopXcx.api.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
@Data
@@ -23,7 +22,10 @@
    public static final int JOINSTATE_NOTSIGN = 1;
    public static final int JOINSTATE_SIGN = 2;
    @ApiModelProperty(value ="当前累计签到天数")
    private int actAumulativeDay;
    @ApiModelProperty(value ="活动名称")
    private String actName;
    @ApiModelProperty(value ="活动编码")
@@ -38,5 +40,7 @@
    private SignBasicInfoJsonVo signBasicInfoJsonVo;
    @ApiModelProperty(value ="奖品信息")
    private List<ActivitySignAwardSetVo> activitySignAwardSetVos;
    @ApiModelProperty(value ="签到天数")
    private List<ActivitySignRecordVo> activitySignRecords;
}
zq-erp/src/main/resources/config/application.properties
@@ -4,15 +4,19 @@
#线上测试环境
#spring.datasource.username=ct_test
#spring.datasource.password=123456
#spring.datasource.url=jdbc:mysql://120.27.238.55:3306/hive_test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8
spring.datasource.username=ct_test
spring.datasource.password=123456
spring.datasource.url=jdbc:mysql://120.27.238.55:3306/hive_test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8
spring.datasource.username=xc_shop
spring.datasource.password=xc_shop123!@#
spring.datasource.url=jdbc:mysql://124.70.222.34/xc_shop?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8
#spring.datasource.username=xc_shop
#spring.datasource.password=xc_shop123!@#
#spring.datasource.url=jdbc:mysql://124.70.222.34/xc_shop?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8
#spring.datasource.username=hive
#spring.datasource.password=hive123!@#
#spring.datasource.url=jdbc:mysql://124.70.222.34/hive_prd?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.initialSize=3
zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignReceiveRecordDao.xml
@@ -86,7 +86,6 @@
        LEFT JOIN activity_sign_award_set b ON a.award_id = b.id
        where
              b.award_type = 1
              and a.state = 1
              and a.company_id = #{companyId}
            and a.user_id = #{userId}
@@ -107,7 +106,6 @@
        LEFT JOIN activity_sign_award_set b ON a.award_id = b.id
        WHERE
        b.award_type = 1
        AND a.state = 1
        and a.company_id = #{record.companyId}
        and a.user_id = #{record.userId}
        <if test="record.sort !=null">
zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignRecordDao.xml
@@ -14,4 +14,14 @@
            and a.sign_time like concat('%',DATE(#{format}),'%')
    </select>
    <select id="selectRecordByMonth" resultType="com.matrix.system.shopXcx.api.vo.ActivitySignRecordVo">
        SELECT
            *
        FROM
            activity_sign_record a
        where a.sign_time like concat('%',DATE_FORMAT(#{date},'%Y-%m'),'%')
          and a.activity_id = #{actId}
          and a.user_id = #{userId}
    </select>
</mapper>
zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml
@@ -1076,4 +1076,25 @@
        group by a.shop_id
        order by amount desc, a.shop_id
    </select>
    <!-- 顾问当天下单列表 -->
    <select id="selectSaleManAchieveList" resultMap="AchieveNewMap">
        select * from achieve_new
        where sale_id=#{saleId} and vip_id=#{vipId} and sale_id=beault_id
          and date_format(datatime, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d')
    </select>
    <select id="selectBeautyManAchieveList" resultMap="AchieveNewMap">
        select * from achieve_new
        where beault_id=#{beautyId} and vip_id=#{vipId}
          and date_format(datatime, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d')
    </select>
    <update id="updateAchieveNumOfPeople">
        <foreach collection="list" item="item" index="index"
                 separator=";">
            update achieve_new set number_of_people=#{num} where id=#{item.id}
        </foreach>
    </update>
</mapper>
zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml
@@ -896,6 +896,7 @@
            <result property="timeLength" column="proj_time_length"/>
            <result property="img" column="proj_img"/>
            <result property="projId" column="proj_projId"/>
            <result property="status" column="proj_status"/>
        </collection>
    </resultMap>
@@ -911,6 +912,7 @@
            e.SURPLUS_COUNT proj_SURPLUS_COUNT,
            e.id proj_info_id,
            e.proj_id proj_projId,
            e.status proj_status,
            f.time_length proj_time_length,
            f.img proj_img
        from sys_proj_use a
zq-erp/src/main/resources/mybatis/mapper/hive/SysStoreInfoDao.xml
@@ -380,6 +380,7 @@
        c.NAME as gs_NAME,
        c.UNIT as gs_UNIT,
        c.good_type as gs_good_type,
        c.measure as gs_measure,
        c.GOODS_SORT_ID as gs_GOODS_SORT_ID,
        c.SUPPLIER_ID as gs_SUPPLIER_ID,
        (select TYPE_NAME from sys_goods_type t where t.id=c.GOODS_SORT_ID) gs_goodsSortName,
zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopProductCommentDao.xml
@@ -318,7 +318,7 @@
        shop_product_comment c
        LEFT JOIN shop_product p ON c.product_id = p.id
        LEFT JOIN shop_order o ON c.order_id = o.id
        LEFT JOIN sys_vip_info b ON c.user_id = b.id
        LEFT JOIN sys_vip_info b ON c.user_id = b.openid
        <where>
          <include refid="where_sql"></include>
         </where>
zq-erp/src/main/resources/static/images/sign/jisumiaosha.png
zq-erp/src/main/resources/static/images/sign/meiriqiandao.png
zq-erp/src/main/resources/static/images/sign/shalonghuodong.png
zq-erp/src/main/resources/static/images/sign/signButton.png
zq-erp/src/main/resources/static/images/sign/signHead.png
zq-erp/src/main/resources/static/images/sign/tiantianpingtuan.png
zq-erp/src/main/resources/templates/views/admin/activity/activity-market.html
@@ -56,7 +56,7 @@
    <el-row>
        <el-col :span="4">
            <el-card class="box-card" :body-style="{ padding: '10px 10px'}">
                <img src="https://shadow.elemecdn.com/app/element/hamburger.9cf7b091-55e9-11e9-a976-7f4d0b07eef6.png" class="image">
                <img src="../../../images/sign/meiriqiandao.png" class="image">
                <div style="padding: 5px;">
                    <span style="padding:5px;font-size: 30px;">每日签到</span>
                    <div class="bottom clearfix">
@@ -67,7 +67,7 @@
        </el-col>
        <el-col :span="4">
            <el-card class="box-card" :body-style="{ padding: '10px 10px'}">
                <img src="https://shadow.elemecdn.com/app/element/hamburger.9cf7b091-55e9-11e9-a976-7f4d0b07eef6.png" class="image">
                <img src="../../../images/sign/tiantianpingtuan.png" class="image">
                <div style="padding: 5px;">
                    <span style="padding:5px;font-size: 30px;">拼团</span>
                    <div class="bottom clearfix">
@@ -78,7 +78,7 @@
        </el-col>
        <el-col :span="4">
            <el-card class="box-card" :body-style="{ padding: '10px 10px'}">
                <img src="https://shadow.elemecdn.com/app/element/hamburger.9cf7b091-55e9-11e9-a976-7f4d0b07eef6.png" class="image">
                <img src="../../../images/sign/jisumiaosha.png" class="image">
                <div style="padding: 5px;">
                    <span style="padding:5px;font-size: 30px;">秒杀</span>
                    <div class="bottom clearfix">
@@ -89,7 +89,7 @@
        </el-col>
        <el-col :span="4">
            <el-card class="box-card" :body-style="{ padding: '10px 10px'}">
                <img src="https://shadow.elemecdn.com/app/element/hamburger.9cf7b091-55e9-11e9-a976-7f4d0b07eef6.png" class="image">
                <img src="../../../images/sign/shalonghuodong.png" class="image">
                <div style="padding: 5px;">
                    <span style="padding:5px;font-size: 30px;">沙龙</span>
                    <div class="bottom clearfix">
@@ -115,7 +115,12 @@
<script>
    var app = new Vue({
        el: '#app',
        data: {},
        data: {
            imageUrlqd: "../../images/sign/meiriqiandao.png",
            imageUrlms: "../../images/sign/jisumiaosha.png",
            imageUrlpt: "../../images/sign/tiantianpingtuan.png",
            imageUrlsl: "../../images/sign/shalonghuodong.png",
        },
        created: function () {
        },
        methods: {
zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-logistics-info.html
@@ -49,7 +49,7 @@
                        <el-row style="display:flex;">
                            <el-col>
                                <el-form-item label="奖品图片:" :label-width="formLabelWidth">
                                    {{formSelect.jptp}}
                                    <img :src="formSelect.jptp" style="max-width: 200px;">
                                </el-form-item>
                            </el-col>
                            <el-col>
zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-update.html
@@ -49,13 +49,12 @@
        }
        .imageTwo {
            display: block;
            height: 50px;
            height: 280px;
            padding: 5px 5px;
            text-align: center;
        }
        .imageThree {
            display: block;
            height: 50px;
            padding: 5px 5px;
            text-align: center;
        }
@@ -74,14 +73,16 @@
        <el-container>
            <el-aside width="30%">
                <el-card class="box-card" :body-style="{ padding: '10px 10px'}">
                    <div @click="uploadImg()" class="imageOne">
                    <!--<div @click="uploadImg()" class="imageOne">
                        <img v-if="imageUrlTitle" :src="imageUrlTitle" style="width: 100%;">
                        <el-button type="primary" v-show="imageUrlTitle == ''" round><span style="font-size: 20px;">标题</span><span style="padding:5px;font-size: 15px;color: red;">(上传图片)</span></span></el-button>
                    </div>
                    <div @click="uploadImg()" class="imageTwo" >
                        <img v-if="imageUrlHead" :src="imageUrlHead" style="width: 100%;">
                        <el-button type="primary" v-show="imageUrlHead == ''" round><span style="font-size: 20px;">头部</span><span style="padding:5px;font-size: 15px;color: red;">(上传图片)</span></span></el-button>
                    </div>
                    </div>-->
                    <el-row>
                        <div @click="uploadImg()" class="imageTwo" >
                            <img v-if="imageUrlHead" :src="imageUrlHead" style="width: 100%;height: 100%">
                            <el-button type="primary" v-show="imageUrlHead == ''" round><span style="font-size: 20px;">头部</span><span style="padding:5px;font-size: 15px;color: red;">(上传图片)</span></span></el-button>
                        </div>
                    </el-row>
                    <el-row style="display:flex;">
                        <el-col>
                            <div style="padding:5px;font-size: 15px;text-align: left;"><span>您已累计签到<span style="color: red;">3</span>天</span></div>
@@ -90,39 +91,48 @@
                            <div style="padding:5px;font-size: 15px;text-align: right;"><span>签到提醒</span></div>
                        </el-col>
                    </el-row>
                    <div @click="uploadImg()">
                        <el-calendar :range="['2019-03-04', '2019-03-24']"></el-calendar>
                        <img v-if="imageUrlState" :src="imageUrlState" style="width: 100%;">
                        <el-button type="primary" v-show="imageUrlState == ''" round><span style="font-size: 20px;">日历签到背景</span><span style="padding:5px;font-size: 15px;color: red;">(上传图片)</span></span></el-button>
                    </div>
                    <div @click="uploadImg()" class="imageThree" >
                        <el-button type="primary" v-show="imageUrlButton == ''" round><span style="font-size: 20px;">签到按钮</span><span style="padding:5px;font-size: 15px;color: red;">(上传图片)</span></span></el-button>
                        <img v-if="imageUrlButton" :src="imageUrlButton" style="width: 100%;">
                    </div>
                    <div style="text-align: center;padding: 5px;" @click="gzsmSet()">
                        <div class="col-sm-8 col-sm-offset-2" style="text-align: left;">
                            <span style="padding:5px;font-size: 30px;">-- 规则说明--</span>
                    <el-row>
                        <div @click="uploadImg()">
                            <el-calendar :range="['2019-03-04', '2019-03-24']"></el-calendar>
                            <img v-if="imageUrlState" :src="imageUrlState" style="width: 100%;">
                            <!--<el-button type="primary" v-show="imageUrlState == ''" round><span style="font-size: 20px;">日历签到背景</span><span style="padding:5px;font-size: 15px;color: red;">(上传图片)</span></span></el-button>-->
                        </div>
                        <div class="el-col-sm-24" style="text-align: center;">
                            <span style="padding:5px;font-size: 15px;color: red;">(点击,编辑规则内容,背景颜色,字体颜色、大小、透明度)</span>
                    </el-row>
                    <el-row>
                        <div @click="uploadImg()" class="imageThree" >
                            <el-button type="primary" v-show="imageUrlButton == ''" round><span style="font-size: 20px;">签到按钮</span><span style="padding:5px;font-size: 15px;color: red;">(上传图片)</span></span></el-button>
                            <img v-if="imageUrlButton" :src="imageUrlButton" style="width: 100%;">
                        </div>
                        <div class="col-sm-8 col-sm-offset-2" style="text-align: left;">
                            <span style="padding:5px;font-size: 15px;">1、每天参与签到可获得积分</span>
                    </el-row>
                    <el-row>
                        <div style="text-align: center;padding: 5px;" @click="gzsmSet()">
                            <div class="col-sm-8 col-sm-offset-2" style="text-align: left;">
                                <span style="padding:5px;font-size: 30px;">-- 规则说明--</span>
                            </div>
                            <div class="el-col-sm-24" style="text-align: center;">
                                <span style="padding:5px;font-size: 15px;color: red;">(点击,编辑规则内容,背景颜色,字体颜色、大小、透明度)</span>
                            </div>
                            <div class="col-sm-8 col-sm-offset-2" style="text-align: left;">
                                <span style="padding:5px;font-size: 15px;">1、每天参与签到可获得积分</span>
                            </div>
                            <div class="col-sm-8 col-sm-offset-2" style="text-align: left;">
                                <span style="padding:5px;font-size: 15px;">2、连续签到7天将获得赠送大礼包</span>
                            </div>
                            <div class="col-sm-8 col-sm-offset-2" style="text-align: left;">
                                <span style="padding:5px;font-size: 15px;">3、每7天重新开始计算</span>
                            </div>
                        </div>
                        <div class="col-sm-8 col-sm-offset-2" style="text-align: left;">
                            <span style="padding:5px;font-size: 15px;">2、连续签到7天将获得赠送大礼包</span>
                        </div>
                        <div class="col-sm-8 col-sm-offset-2" style="text-align: left;">
                            <span style="padding:5px;font-size: 15px;">3、每7天重新开始计算</span>
                        </div>
                    </div>
                    </el-row>
                </el-card>
            </el-aside>
            <el-main width="70%">
                <div>
                    <el-tabs v-model="activeName" >
                    <el-tabs v-model="activeName"  @tab-click="clickSecondTab">
                        <el-tab-pane label="活动设置" name="first">
                            <div class="col-sm-8 col-sm-offset-1" style="padding: 10px">
                                <el-form-item label="活动名称" prop="actName">
@@ -152,7 +162,7 @@
                        <el-tab-pane label="奖品设置" name="second">
                            <el-row style="display:flex;">
                                <el-col :span="20">
                                    <el-tabs v-model="editableTabsValue" type="card" closable @tab-remove="removeTab">
                                    <el-tabs v-model="editableTabsValue" type="card" closable @tab-click="clickTab" @tab-remove="removeTab">
                                        <el-tab-pane v-for="(item, index) in editableTabs" :key="item.name" :label="item.title" :name="item.name">
                                            <el-row v-show="editableTabsValue !== '1'">
                                                <el-form-item label="签到累计天数">
@@ -407,13 +417,8 @@
                                                                          stripe:true
                                                                          style="width: 100%">
                                                                    <el-table-column
                                                                            prop="cname"
                                                                            label="优惠券名称"
                                                                            show-overflow-tooltip>
                                                                    </el-table-column>
                                                                    <el-table-column
                                                                            prop="endTime"
                                                                            label="截止日期"
                                                                            prop="name"
                                                                            label="名称"
                                                                            show-overflow-tooltip>
                                                                    </el-table-column>
                                                                    <el-table-column
@@ -456,7 +461,7 @@
                        </el-tab-pane>
                        <el-tab-pane label="背景图片上传" name="third">
                            <div class="col-sm-8 col-sm-offset-1" style="padding: 10px">
                            <!--<div class="col-sm-8 col-sm-offset-1" style="padding: 10px">
                                <el-form-item label="标题">
                                    <el-upload
                                            action="/admin/multipleUploadFile/doUpload"
@@ -465,7 +470,7 @@
                                        <img v-if="imageUrlTitle" :src="imageUrlTitle" style="max-width: 300px;">
                                    </el-upload>
                                </el-form-item>
                            </div>
                            </div>-->
                            <div class="col-sm-8 col-sm-offset-1" style="padding: 10px">
                                <el-form-item label="头部">
                                    <el-upload
@@ -476,7 +481,7 @@
                                    </el-upload>
                                </el-form-item>
                            </div>
                            <div class="col-sm-8 col-sm-offset-1" style="padding: 10px">
                            <!--<div class="col-sm-8 col-sm-offset-1" style="padding: 10px">
                                <el-form-item label="日历签到背景">
                                    <el-upload
                                            action="/admin/multipleUploadFile/doUpload"
@@ -485,7 +490,7 @@
                                        <img v-if="imageUrlState" :src="imageUrlState" style="max-width: 300px;">
                                    </el-upload>
                                </el-form-item>
                            </div>
                            </div>-->
                            <div class="col-sm-8 col-sm-offset-1" style="padding: 10px">
                                <el-form-item label="签到按钮">
                                    <el-upload
@@ -575,8 +580,8 @@
            formLabelWidth: '120px',
            //标题图片
            imageUrlTitle: '',
            imageUrlHead: '',
            imageUrlButton: '',
            imageUrlHead: "../../../images/sign/signHead.png",
            imageUrlButton: "../../../images/sign/signButton.png",
            imageUrlState: '',
            activeClickTab:0,
@@ -666,6 +671,8 @@
                let _this = this;
                _this.drawerCoupon = true;
                _this.activeClickTab = parseInt(name);
                console.log(_this.activeClickTab);
                _this.formCoupon.yhjmc = val;
                _this.loadCouponList();
            },
@@ -701,8 +708,6 @@
            },
            //重置
            resetFormCoupon(formName) {
                // this.formCoupon.yhjmc = ''
                // console.log(this.$refs[formName].resetFields)
                (this.$refs[formName])[0].resetFields();
            },
            changePageSizeCoupon(val) {
@@ -951,6 +956,14 @@
                    content: JSON.parse(JSON.stringify(prize)),
                });
                this.editableTabsValue = newTabName;
                this.activeClickTab = parseInt(newTabName);
            },
            clickSecondTab(targetName) {
                this.activeClickTab = 1;
            },
            clickTab(targetName) {
                console.log(targetName.name);
                this.activeClickTab = parseInt(targetName.name);
            },
            removeTab(targetName) {
                let tabs = this.editableTabs;
zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-writeoff-info.html
@@ -31,7 +31,7 @@
                <el-row style="display:flex;">
                    <el-col :span="6">
                        <el-form-item label="奖品图片:" :label-width="formLabelWidth">
                            {{formSelect.jptp}}
                            <img :src="formSelect.jptp" style="max-width: 200px;">
                        </el-form-item>
                    </el-col>
                    <el-col :span="6">
zq-erp/src/main/resources/templates/views/admin/activity/activity-sign.html
@@ -56,13 +56,12 @@
        }
        .imageTwo {
            display: block;
            height: 50px;
            height: 280px;
            padding: 5px 5px;
            text-align: center;
        }
        .imageThree {
            display: block;
            height: 50px;
            padding: 5px 5px;
            text-align: center;
        }
@@ -81,14 +80,16 @@
    <el-container>
        <el-aside width="30%">
            <el-card class="box-card" :body-style="{ padding: '10px 10px'}">
                <div @click="uploadImg()" class="imageOne">
                <!--<div @click="uploadImg()" class="imageOne">
                    <img v-if="imageUrlTitle" :src="imageUrlTitle" style="width: 100%;">
                    <el-button type="primary" v-show="imageUrlTitle == ''" round><span style="font-size: 20px;">标题</span><span style="padding:5px;font-size: 15px;color: red;">(上传图片)</span></span></el-button>
                </div>
                <div @click="uploadImg()" class="imageTwo" >
                    <img v-if="imageUrlHead" :src="imageUrlHead" style="width: 100%;">
                    <el-button type="primary" v-show="imageUrlHead == ''" round><span style="font-size: 20px;">头部</span><span style="padding:5px;font-size: 15px;color: red;">(上传图片)</span></span></el-button>
                </div>
                </div>-->
                <el-row>
                    <div @click="uploadImg()" class="imageTwo" >
                        <img v-if="imageUrlHead" :src="imageUrlHead" style="width: 100%;height: 100%">
                        <el-button type="primary" v-show="imageUrlHead == ''" round><span style="font-size: 20px;">头部</span><span style="padding:5px;font-size: 15px;color: red;">(上传图片)</span></span></el-button>
                    </div>
                </el-row>
                <el-row style="display:flex;">
                    <el-col>
                        <div style="padding:5px;font-size: 15px;text-align: left;"><span>您已累计签到<span style="color: red;">3</span>天</span></div>
@@ -97,16 +98,24 @@
                        <div style="padding:5px;font-size: 15px;text-align: right;"><span>签到提醒</span></div>
                    </el-col>
                </el-row>
                <el-row>
                <div @click="uploadImg()">
                    <el-calendar :range="['2019-03-04', '2019-03-24']"></el-calendar>
                    <img v-if="imageUrlState" :src="imageUrlState" style="width: 100%;">
                    <el-button type="primary" v-show="imageUrlState == ''" round><span style="font-size: 20px;">日历签到背景</span><span style="padding:5px;font-size: 15px;color: red;">(上传图片)</span></span></el-button>
                    <!--<el-button type="primary" v-show="imageUrlState == ''" round><span style="font-size: 20px;">日历签到背景</span><span style="padding:5px;font-size: 15px;color: red;">(上传图片)</span></span></el-button>-->
                </div>
                </el-row>
                <el-row>
                <div @click="uploadImg()" class="imageThree" >
                    <el-button type="primary" v-show="imageUrlButton == ''" round><span style="font-size: 20px;">签到按钮</span><span style="padding:5px;font-size: 15px;color: red;">(上传图片)</span></span></el-button>
                    <img v-if="imageUrlButton" :src="imageUrlButton" style="width: 100%;">
                </div>
                </el-row>
                <el-row>
                <div style="text-align: center;padding: 5px;" @click="gzsmSet()">
                    <div class="col-sm-8 col-sm-offset-2" style="text-align: left;">
                        <span style="padding:5px;font-size: 30px;">-- 规则说明--</span>
@@ -124,12 +133,13 @@
                        <span style="padding:5px;font-size: 15px;">3、每7天重新开始计算</span>
                    </div>
                </div>
                </el-row>
            </el-card>
        </el-aside>
        <el-main width="70%">
            <div>
                <el-tabs v-model="activeName" >
                <el-tabs v-model="activeName" @tab-click="clickSecondTab">
                            <el-tab-pane label="活动设置" name="first">
                                <div class="col-sm-8 col-sm-offset-1" style="padding: 10px">
                                    <el-form-item label="活动名称" prop="actName">
@@ -159,7 +169,7 @@
                            <el-tab-pane label="奖品设置" name="second">
                                <el-row style="display:flex;">
                                    <el-col :span="20">
                                        <el-tabs v-model="editableTabsValue" type="card" closable @tab-remove="removeTab">
                                        <el-tabs v-model="editableTabsValue" type="card" closable @tab-click="clickTab" @tab-remove="removeTab">
                                            <el-tab-pane v-for="(item, index) in editableTabs" :key="item.name" :label="item.title" :name="item.name">
                                                <el-row v-show="editableTabsValue !== '1'">
                                                    <el-form-item label="签到累计天数">
@@ -413,13 +423,8 @@
                                                                              stripe:true
                                                                              style="width: 100%">
                                                                        <el-table-column
                                                                                prop="cname"
                                                                                label="优惠券名称"
                                                                                show-overflow-tooltip>
                                                                        </el-table-column>
                                                                        <el-table-column
                                                                                prop="endTime"
                                                                                label="截止日期"
                                                                                prop="name"
                                                                                label="名称"
                                                                                show-overflow-tooltip>
                                                                        </el-table-column>
                                                                        <el-table-column
@@ -462,7 +467,7 @@
                            </el-tab-pane>
                            <el-tab-pane label="背景图片上传" name="third">
                                <div class="col-sm-8 col-sm-offset-1" style="padding: 10px">
                                <!--<div class="col-sm-8 col-sm-offset-1" style="padding: 10px">
                                    <el-form-item label="标题">
                                        <el-upload
                                                action="/admin/multipleUploadFile/doUpload"
@@ -471,7 +476,7 @@
                                            <img v-if="imageUrlTitle" :src="imageUrlTitle" style="max-width: 300px;">
                                        </el-upload>
                                    </el-form-item>
                                </div>
                                </div>-->
                                <div class="col-sm-8 col-sm-offset-1" style="padding: 10px">
                                    <el-form-item label="头部">
                                        <el-upload
@@ -482,7 +487,7 @@
                                        </el-upload>
                                    </el-form-item>
                                </div>
                                <div class="col-sm-8 col-sm-offset-1" style="padding: 10px">
                                <!--<div class="col-sm-8 col-sm-offset-1" style="padding: 10px">
                                    <el-form-item label="日历签到背景">
                                        <el-upload
                                                action="/admin/multipleUploadFile/doUpload"
@@ -491,7 +496,7 @@
                                            <img v-if="imageUrlState" :src="imageUrlState" style="max-width: 300px;">
                                        </el-upload>
                                    </el-form-item>
                                </div>
                                </div>-->
                                <div class="col-sm-8 col-sm-offset-1" style="padding: 10px">
                                    <el-form-item label="签到按钮">
                                        <el-upload
@@ -616,8 +621,8 @@
            //标题图片
            imageUrlTitle: '',
            imageUrlHead: '',
            imageUrlButton: '',
            imageUrlHead: "../../../images/sign/signHead.png",
            imageUrlButton: "../../../images/sign/signButton.png",
            imageUrlState: '',
            //字体颜色
@@ -867,6 +872,7 @@
                            message: data.info,
                            type: 'success',
                        });
                        parent.layer.close(parent.layer.getFrameIndex(window.name));
                    }
                });
            },
@@ -879,6 +885,14 @@
                    content: JSON.parse(JSON.stringify(prize)),
                });
                this.editableTabsValue = newTabName;
                this.activeClickTab = parseInt(newTabName);
            },
            clickSecondTab(targetName) {
                this.activeClickTab = 1;
            },
            clickTab(targetName) {
                console.log(targetName.name);
                this.activeClickTab = parseInt(targetName.name);
            },
            removeTab(targetName) {
                let tabs = this.editableTabs;
@@ -939,7 +953,6 @@
            //奖品设置的图片介绍
            introduceImgSuccess(res, file) {
                this.editableTabs[this.activeClickTab-1].content.introduceImg = res.path;
                // this.prize.introduceImg = URL.createObjectURL(file.raw);
            },
            //奖品设置的客服微信
            wechatImgSuccess(res, file) {
zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/daily-sale-list.html
@@ -93,8 +93,6 @@
                url : basePath+"/admin/sysBusinessData/findDailySaleData",
                showExport : true,
                showFooter : false,
                height:'auto',
                width:'auto',
                exportDataType : "basic", //basic', 'all', 'selected'.
                exportTypes : [ 'excel', 'xlsx' ], //导出类型
                exportOptions : {
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/index.html
@@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="renderer" content="webkit">
<meta http-equiv="Cache-Control" content="no-siteapp" />
<title>HIVE蜜米管理系统</title>
<title>讯聪管理系统</title>
<link rel="shortcut icon" href="${path }/resource/images/mm.ico">
<!--[if lt IE 8]>
    <meta http-equiv="refresh" content="0;ie.html" />
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html
@@ -118,8 +118,8 @@
        }
    </style>
</head>
<body>
<div class="ibox-content" id="app" v-cloak>
<body style="overflow: hidden">
<div  id="app" v-cloak>
    <el-row>
@@ -359,7 +359,7 @@
                </el-table>
            </el-row>
            <el-row class="mt-20 vertical">
            <el-row class=" vertical">
                <el-col :span="10" class="money-box">
                    <div>
                        <ul>
@@ -660,7 +660,7 @@
            shopInfo: {},
            tableHeight: 500,
            tableHeight:  'calc(100vh - 300px)',
            /*****搜索表格数据*********/
            //搜索关键词
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/servicceAddForm.html
@@ -75,6 +75,9 @@
            padding-left: 10px;
            margin-left:10px ;
        }
        .openOrClose {
            cursor:pointer
        }
    </style>
</head>
<body>
@@ -124,14 +127,17 @@
                </el-tab-pane>
                <el-tab-pane label="套餐" name="tab2">
                    <template v-for="(item,index) in taocanList" v-if="index > 3 ? tcIsOpen : true">
                        <p class="el-big-title">{{index}}【{{item.isCourse=='N'?'固定套餐':'任选套餐'}}】{{item.projName}}
                    <template v-for="(item,index) in taocanList">
                        <p class="el-big-title">
                            <span class="openOrClose" v-if="!item.openOrClose" @click="openOrCloseTc(item, index, 1)"><i class="el-icon-arrow-down"></i></span>
                            <span class="openOrClose" v-if="item.openOrClose" @click="openOrCloseTc(item, index, 2)"><i class="el-icon-arrow-up"></i></span>
                            【{{item.isCourse=='N'?'固定套餐':'任选套餐'}}】{{item.projName}}
                            <span style="float: right" v-if="item.failTime != null">有效期:{{item.failTime}}</span>
                            <code v-if="item.projInfo.isCourse=='Y'" > 剩余次数:<span v-if="item.projInfo.isInfinite == 'Y'">无限次</span><span v-else>{{item.surplusCount}}</span> </code>
                        </p>
                        <el-table
                                :data="item.taocanProjUse"
                                style="width: 98%">
                                style="width: 98%" v-show="item.openOrClose">
                            <el-table-column
                                    prop="projName"
                                    label="项目">
@@ -165,10 +171,10 @@
                            </el-table-column>
                        </el-table>
                    </template>
                    <el-row style="text-align: center; margin-top: 5px;">
                        <el-link type="primary" v-if="!tcIsOpen && taocanList.length > 0" @click="tcIsOpen = true">点击展开</el-link>
                        <el-link type="primary" v-if="tcIsOpen" @click="tcIsOpen = false">点击隐藏</el-link>
                    </el-row>
<!--                    <el-row style="text-align: center; margin-top: 5px;">-->
<!--                        <el-link type="primary" v-if="!tcIsOpen && taocanList.length > 0" @click="tcIsOpen = true">点击展开</el-link>-->
<!--                        <el-link type="primary" v-if="tcIsOpen" @click="tcIsOpen = false">点击隐藏</el-link>-->
<!--                    </el-row>-->
                </el-tab-pane>
            </el-tabs>
@@ -370,6 +376,14 @@
            closeFram: function () {
                parent.layer.close(parent.layer.getFrameIndex(window.name));
            },
            openOrCloseTc : function (item, index, value) {
                if (value == 1) {
                    item.openOrClose = true;
                } else {
                    item.openOrClose = false;
                }
                Vue.set(this.taocanList, index, item);
            }
        }
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/yyServiceAddForm.html
@@ -75,6 +75,9 @@
            padding-left: 10px;
            margin-left:10px ;
        }
        .openOrClose {
             cursor:pointer
        }
    </style>
</head>
<body>
@@ -124,14 +127,17 @@
                </el-tab-pane>
                <el-tab-pane label="套餐" name="tab2">
                    <template v-for="(item,index) in taocanList" v-if="index > 3 ? tcIsOpen : true">
                        <p class="el-big-title">【{{item.isCourse=='N'?'固定套餐':'任选套餐'}}】{{item.projName}}
                    <template v-for="(item,index) in taocanList">
                        <p class="el-big-title">
                            <span class="openOrClose" v-if="!item.openOrClose" @click="openOrCloseTc(item, index, 1)"><i class="el-icon-arrow-down"></i></span>
                            <span class="openOrClose" v-if="item.openOrClose" @click="openOrCloseTc(item, index, 2)"><i class="el-icon-arrow-up"></i></span>
                            【{{item.isCourse=='N'?'固定套餐':'任选套餐'}}】{{item.projName}}
                            <span style="float: right" v-if="item.failTime != null">有效期:{{item.failTime}}</span>
                            <code v-if="item.projInfo.isCourse=='Y'" > 剩余次数:<span v-if="item.projInfo.isInfinite == 'Y'">无限次</span><span v-else>{{item.surplusCount}}</span> </code>
                        </p>
                        <el-table
                                :data="item.taocanProjUse"
                                style="width: 98%">
                                style="width: 98%" v-show="item.openOrClose">
                            <el-table-column
                                    prop="projName"
                                    label="项目">
@@ -165,10 +171,10 @@
                            </el-table-column>
                        </el-table>
                    </template>
                    <el-row style="text-align: center; margin-top: 5px;">
                        <el-link type="primary" v-if="!tcIsOpen && taocanList.length > 0" @click="tcIsOpen = true">点击展开</el-link>
                        <el-link type="primary" v-if="tcIsOpen" @click="tcIsOpen = false">点击隐藏</el-link>
                    </el-row>
<!--                    <el-row style="text-align: center; margin-top: 5px;">-->
<!--                        <el-link type="primary" v-if="!tcIsOpen && taocanList.length > 0" @click="tcIsOpen = true">点击展开</el-link>-->
<!--                        <el-link type="primary" v-if="tcIsOpen" @click="tcIsOpen = false">点击隐藏</el-link>-->
<!--                    </el-row>-->
                </el-tab-pane>
            </el-tabs>
@@ -336,7 +342,14 @@
            closeFram: function () {
                parent.layer.close(parent.layer.getFrameIndex(window.name));
            },
            openOrCloseTc : function (item, index, value) {
                if (value == 1) {
                    item.openOrClose = true;
                } else {
                    item.openOrClose = false;
                }
                Vue.set(this.taocanList, index, item);
            }
        }
    })
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/yypb-form.html
@@ -451,12 +451,12 @@
                });
            }
            ,
            getFreedBeautyd: function (index) {
            getFreedBeautyd: function () {
                console.log("获取美疗师");
                let _this = this;
                let projService = _this.projService;
                let beStates = projService.serviceItems[index];
                let beStates = projService.serviceItems[0];
                console.log(beStates);
                if (beStates == null ||  MTools.isBlank(beStates.beginTimeForm) ||    MTools.isBlank(beStates.endTimeForm )  ){
                    return;
                }
zq-erp/src/main/resources/templates/views/admin/hive/instore/store-list-pl.html
New file
@@ -0,0 +1,182 @@
<!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">
<div class="pd-10">
    <!-- 搜索框部分start -->
    <div class="row form-head">
        <form class="form-inline" id="serchform">
            <div class="form-group mr-20 ">
                <div class="btn-group search-list " data-for="search-text">
                    <button type="button"
                            class="btn btn-default dropdown-toggle searchlist"
                            data-toggle="dropdown">
                        产品名称 <span class="caret "></span>
                    </button>
                    <ul class="dropdown-menu" role="menu">
                        <li data-field="goods.name"><a>产品名称</a></li>
                        <li data-field="goods.goodsNo"><a>产品编号 </a></li>
                    </ul>
                </div>
                <input autocomplete="off"   id="search-text" name="goods.name" placeholder="输入查询关键词"
                       type="text" class="form-control">
            </div>
            <div class="form-group mr-20">
                <label for="goodsSortId">产品分类</label> <select
                    class=" form-control select2" size="1"
                    name="goods.goodsSortId" id="goodsSortId">
                <option value=''>--选择产品分类--</option>
            </select>
            </div>
            <div class="form-group mr-20">
                <label for="isAlarm">库存报警状态</label> <select class="form-control"
                                                            name="isAlarm" id="isAlarm">
                <option value=''>--请选择库存报警状态--</option>
                <option value='1'>是</option>
                <option value='2'>否</option>
            </select>
            </div>
            <div class="form-group">
                <button onclick="myGrid.serchData(1)" type="button"
                        class="btn btn-sm btn-info">
                    <i class="fa fa-search "></i> 搜索
                </button>
                <button type="reset" class="btn btn-sm btn-info ">
                    <i class="fa fa-refresh "></i> 重置
                </button>
            </div>
        </form>
    </div>
    <div class="row mt-10">
        <div id="option-bar">
            <button   onclick="savePl()" type="button" class="btn btn-info btn-sm"><i class="fa fa-download"></i>选择配料</button>
            <!-- 功能按钮部分 -->
        </div>
        <!-- 数据表格部分 -->
        <table id="mgrid">
            <thead>
            <tr>
                <th data-checkbox="true"></th>
                <th data-formatter="MGrid.indexfn" data-align="center"
                    data-width="30px">序号
                </th>
                <th data-field="goods.code">产品编号</th>
                <th data-field="goods.name">产品名称</th>
                <th data-field="goods.unit">产品单位</th>
                <th data-field="storeTotal" data-formatter="overTime"
                    data-sortable="true">库存量
                </th>
                <th data-field="goodsPrice">入库平均价</th>
                <th  data-field="batchCount">批次数</th>
                <th data-field="goods.alarmNum">库存预警值</th>
                <th data-field="storeName">所属仓库</th>
<!--                <th data-field="goods.goodType">产品用途</th>-->
                <th data-field="goods.goodsSortName">分类</th>
            </tr>
            </thead>
        </table>
        <!-- 数据表格部分end -->
    </div>
</div>
<script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script>
<script type="text/javascript">
    var myGrid;
    $(function () {
        $(".select2").select2();
        //初始化商品类型搜索列表
        initGoodsTypes();
        //初始化商品属性搜索列表
        MTools.autoFullSelect();
        myGrid = MGrid.initGrid({
            url: basePath + "/admin/store/showCountList",
            sortName: "c.goodsNo",
            sortOrder: "asc",
            mutexClick : false,
            clickToSelect : true
        });
    });
    function buidOperate(value, row, index) {
        var html = [];
        html[0] = '<a  onClick="openStoreFlow(\'' + row.goods.code
            + '\')"   class="text-primary " >流向明细</a>'
        return html.join("");
    }
    function openStoreFlow(productCode){
        layer.full(layer.open({
            type : 2,
            title : "库存流向明细",
            maxmin : true,
            area :  MUI.SIZE_M,
            content : [ basePath + '/admin/redirect/hive/statistics/store-inout-list?productCode='+productCode ]
        }));
    }
    /**
     * 初始化产品列表
     */
    function initGoodsTypes() {
        $.AjaxProxy({
            a: false,
            c: false
        }).invoke(basePath + "/admin/goodstype/all", function (loj) {
            $("#goodsSortId").createSelectTree(loj.attr("result").rows, {
                append: true,
                value: "typeName"
            });
        });
    }
    /**
     * 库存警戒
     */
    function overTime(value, row, index) {
        var html = "";
        var alarmNum = 0;
        if (row.sku != null) {
            alarmNum = row.alarmNum;
        }
        var storeNum = parseInt(value);
        if (alarmNum > storeNum) {
            html = '<span class="label-danger" >&nbsp;&nbsp;' + value
                + '&nbsp;&nbsp;</span>';
        } else {
            html = '<span>' + value + '</span>';
        }
        return html;
    }
    function savePl() {
        var rows = $("#mgrid").bootstrapTable('getAllSelections');
        parent.selectPl(rows);
        parent.layer.close(parent.layer.getFrameIndex(window.name));
    }
</script>
</body>
</html>
zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-list-new.html
@@ -100,7 +100,9 @@
    </el-row>
    <el-row class="table-style">
        <el-table :data="tableData" style="width: 100%">
        <el-table :data="tableData"
                  :height="height"
                  style="width: 100%">
            <el-table-column type="index" width="30"></el-table-column>
            <el-table-column prop="datatime" width="150" label="时间"></el-table-column>
            <el-table-column prop="orderNo" width="180" label="订单编号">
@@ -158,6 +160,7 @@
            customColumns : [],
            shopList : [],
            achieveUsers : [],
            height:'calc(100vh - 240px)',
            years : [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021],
            months : ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"],
            days : [],
zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-sale-list.html
@@ -93,8 +93,6 @@
                url : basePath+"/admin/sysBusinessData/findDailySaleData",
                showExport : true,
                showFooter : false,
                height:'auto',
                width:'auto',
                exportDataType : "basic", //basic', 'all', 'selected'.
                exportTypes : [ 'excel', 'xlsx' ], //导出类型
                exportOptions : {
zq-erp/src/main/resources/templates/views/admin/hive/store/projServiceStartpl-list-bak.html
New file
@@ -0,0 +1,105 @@
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<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>
    <div class="ibox-content">
        <form class="form-horizontal" id="dataform"
            onsubmit="javascripr:return false;">
            <input autocomplete="off"   type="hidden" name="id" th:value="${serviceId} " >
            <table class="table table-bordered" id="waptable">
                <tbody th:each="projInfo,outList:${projInfoList}">
                    <tr class="success">
                        <td colspan="6" th:text="'项目名称:'+${projInfo.name}"></td>
                    </tr>
                    <tr>
                        <td colspan="6">
                            <table class="table">
                                <thead>
                                <tr>
                                    <th>序号</th>
                                    <th>配料名称</th>
                                    <th>推荐消耗</th>
                                    <th>实际消耗</th>
                                    <th>配料备注</th>
                                </tr>
                                </thead>
                                <tbody >
                                    <tr class="group" th:each="projGoods,list:${projInfo.assembleGoods}">
                                        <td th:text="${list.index+1}" ></td>
                                        <td th:text="${projGoods.shoppingGoods.name}"></td>
                                        <td >
                                             <span   th:text="${projGoods.total}+''+${projGoods.shoppingGoods.measure}"></span>
                                        </td>
                                        <td >
                                            <input autocomplete="off"   class="form-control" style="width: 200px;float: left;"  type="text" name="amount" placeholder="实际用量" >
                                            <span style="line-height: 30px;margin-left: 10px;"  th:text="${projGoods.shoppingGoods.measure}"></span>
                                        </td>
                                        <td>
                                            <input autocomplete="off"   type="hidden" name="skuId" th:value="${projGoods.assembleGoodId} " >
                                            <input autocomplete="off"    type="text" name="remark"  class="form-control" placeholder="配料备注"></td>
                                    </tr>
                                </tbody>
                            </table>
                        </td>
                    </tr>
                </tbody>
            </table>
            <div class="form-group " style="position: fixed;bottom: 0px;left: 49%;z-index: 9999;background: #ffffff;text-align: center;">
                <div class="col-sm-12 text-center">
                    <a href="javascript:;" onclick="myForm.submit()"
                       class="btn btn-success radius">配料完成</a>
                </div>
            </div>
        </form>
    </div>
</body>
<script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script>
<script  th:inline="javascript">
    var myForm=MForm.initForm({
        invokeUrl:basePath+"/admin/projService/endPl",
        afterSubmit:function(){
            if (parent.myGrid) {
                parent.myGrid.serchData();
            }
            if (parent.app) {
                parent.app.serviceOrderQuery();
            }
        },
    });
    var index=0;
    //设置namename
    $(".group").each(function(){
        var inputs=$(this).find("input");
        inputs.each(function(){
            $(this).attr("name","outStoreItem["+index+"]."+$(this).attr("name"));
        });
        index++;
    });
    </script>
</body>
</html>
zq-erp/src/main/resources/templates/views/admin/hive/store/projServiceStartpl-list.html
@@ -1,84 +1,90 @@
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<meta name="renderer" content="webkit|ie-comp|ie-stand">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport"
    content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
<meta http-equiv="Cache-Control" content="no-siteapp" />
<!-- 本框架基本脚本和样式 -->
<script type="text/javascript"
    th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script>
<script type="text/javascript" th:src="@{/js/systools/MBase.js}"></script>
    <meta charset="utf-8">
    <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
    <meta name="renderer" content="webkit|ie-comp|ie-stand">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport"
          content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
    <meta http-equiv="Cache-Control" content="no-siteapp" />
    <!-- 本框架基本脚本和样式 -->
    <script type="text/javascript"
            th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script>
    <script type="text/javascript" th:src="@{/js/systools/MBase.js}"></script>
</head>
<body>
    <div class="ibox-content">
        <form class="form-horizontal" id="dataform"
            onsubmit="javascripr:return false;">
<div class="ibox-content">
    <form class="form-horizontal" id="dataform"
          onsubmit="javascripr:return false;">
            <input autocomplete="off"   type="hidden" name="id" th:value="${serviceId} " >
        <input autocomplete="off"   type="hidden" name="id" th:value="${serviceId} " >
            <table class="table table-bordered" id="waptable">
                <tbody th:each="projInfo,outList:${projInfoList}">
        <table class="table table-bordered" id="waptable">
            <tbody th:each="projInfo,outList:${projInfoList}">
                    <tr class="success">
                        <td colspan="6" th:text="'项目名称:'+${projInfo.name}"></td>
                    </tr>
                    <tr>
                        <td colspan="6">
                            <table class="table">
                                <thead>
                                <tr>
                                    <th>序号</th>
                                    <th>配料名称</th>
                                    <th>推荐消耗</th>
                                    <th>实际消耗</th>
                                    <th>配料备注</th>
                                </tr>
                                </thead>
                                <tbody >
            <tr class="success">
                <td colspan="5" th:text="'项目名称:'+${projInfo.name}"></td>
                <td colspan="1" ><button type="button" class="btn btn-primary btn-xs" th:onclick="'javascript:openPlList('+ ${outList.index} +')'">添加配料</button></td>
            </tr>
            <tr>
                <td colspan="6">
                    <table class="table">
                        <thead>
                        <tr>
                            <th>序号</th>
                            <th>配料名称</th>
                            <th>推荐消耗</th>
                            <th>实际消耗</th>
                            <th>配料备注</th>
                        </tr>
                        </thead>
                        <tbody th:attrappend="id=${outList.index}" >
                                    <tr class="group" th:each="projGoods,list:${projInfo.assembleGoods}">
                                        <td th:text="${list.index+1}" ></td>
                                        <td th:text="${projGoods.shoppingGoods.name}"></td>
                                        <td >
                                             <span   th:text="${projGoods.total}+''+${projGoods.shoppingGoods.measure}"></span>
                                        </td>
                                        <td >
                                            <input autocomplete="off"   class="form-control" style="width: 200px;float: left;"  type="text" name="amount" placeholder="实际用量" >
                                            <span style="line-height: 30px;margin-left: 10px;"  th:text="${projGoods.shoppingGoods.measure}"></span>
                                        </td>
                                        <td>
                                            <input autocomplete="off"   type="hidden" name="skuId" th:value="${projGoods.assembleGoodId} " >
                        <tr class="group" th:each="projGoods,list:${projInfo.assembleGoods}">
                            <td th:text="${list.index+1}" ></td>
                            <td th:text="${projGoods.shoppingGoods.name}"></td>
                            <td >
                                <span   th:text="${projGoods.total}+''+${projGoods.shoppingGoods.measure}"></span>
                            </td>
                            <td >
                                <input autocomplete="off"   class="form-control" style="width: 200px;float: left;"  type="text" name="amount" placeholder="实际用量" >
                                <span style="line-height: 30px;margin-left: 10px;"  th:text="${projGoods.shoppingGoods.measure}"></span>
                            </td>
                            <td><input autocomplete="off"   type="hidden" name="skuId" th:value="${projGoods.assembleGoodId} " >
                                            <input autocomplete="off"    type="text" name="remark"  class="form-control" placeholder="配料备注"></td>
                                <input autocomplete="off"    type="text" name="remark"  class="form-control" placeholder="配料备注"></td>
                                    </tr>
                                </tbody>
                            </table>
                        </td>
                    </tr>
                        </tr>
                        </tbody>
                    </table>
                </td>
            </tr>
                </tbody>
            </table>
            <div class="form-group " style="position: fixed;bottom: 0px;left: 49%;z-index: 9999;background: #ffffff;text-align: center;">
                <div class="col-sm-12 text-center">
                    <a href="javascript:;" onclick="myForm.submit()"
                       class="btn btn-success radius">配料完成</a>
                </div>
            </tbody>
        </table>
        <div class="form-group " style="position: fixed;bottom: 0px;left: 49%;z-index: 9999;background: #ffffff;text-align: center;">
            <div class="col-sm-12 text-center">
                <a href="javascript:;" onclick="myForm.submit()"
                   class="btn btn-success radius">配料完成</a>
            </div>
        </form>
    </div>
        </div>
    </form>
</div>
</body>
<script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script>
<script  th:inline="javascript">
    var plList = [[${projInfoList}]];
    var projIndex = 0;
    var myForm=MForm.initForm({
        invokeUrl:basePath+"/admin/projService/endPl",
        beforeSubmit : function() {
            var fieldArray = $("#dataform").serializeArray();
            console.log(fieldArray);
        },
        afterSubmit:function(){
            if (parent.myGrid) {
                parent.myGrid.serchData();
@@ -100,6 +106,47 @@
        });
        index++;
    });
    </script>
    function openPlList(value) {
        projIndex = value;
        layer.full(layer.open({
            type: 2,
            title: "选择配料",
            maxmin: true,
            area: [MUI.SIZE_L, '450px'],
            content: [basePath + '/admin/redirect/hive/instore/store-list-pl']
        }));
    }
    function selectPl(rows) {
        console.log(rows);
        if (rows) {
            var projInfo = plList[projIndex];
            var idSelect = "#"+projIndex;
            var allGroup = $(".group").length;
            console.log(idSelect);
            var groupLength = $(idSelect + " .group").length;
            for(var i = 0; i < rows.length; i++) {
                var row = rows[i];
                var nextIndex = groupLength + i + 1;
                var outItemIndex = allGroup + i;
                var html = '<tr class="group">'
                        + '<td>'+ nextIndex +'</td>'
                        + '<td>'+ row.goods.name +'</td>'
                        + '<td><span></span></td>'
                        + '<td ><input autocomplete="off"   class="form-control" style="width: 200px;float: left;"  type="text" name="outStoreItem['+ outItemIndex +'].amount" placeholder="实际用量" >'
                        + '<span style="line-height: 30px;margin-left: 10px;">'+ row.goods.measure +'</span></td>'
                        + '<td><input autocomplete="off"   type="hidden" name="outStoreItem['+ outItemIndex +'].skuId" value="'+ row.goods.id +'">'
                        + '<input autocomplete="off" type="text" name="outStoreItem['+ outItemIndex +'].remark"  class="form-control" placeholder="配料备注"></td></tr>';
                if ($(idSelect).children(':last').length <= 0) {
                    $(idSelect).html(html);
                } else {
                    $(idSelect).children(':last').after(html);
                }
            }
        }
    }
</script>
</body>
</html>
zq-erp/src/main/resources/templates/views/admin/index.html
@@ -5,7 +5,7 @@
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="renderer" content="webkit">
    <meta http-equiv="Cache-Control" content="no-siteapp"/>
    <title>HIVE管理系统</title>
    <title>讯聪管理系统</title>
    <!-- 本框架基本脚本和样式 -->
    <link rel="stylesheet" type="text/css" th:href="@{/plugin/layer/skin/layer.css}">
    <script type="text/javascript"
@@ -37,7 +37,7 @@
                        <a id="dLabel" data-toggle="dropdown" class="dropdown-toggle" href="#" aria-haspopup="true" aria-expanded="true">
                                <span class="clear" style="height: auto;">
                                    <span class="block m-t-xs">
                                        <strong class="font-bold">HIVE</strong>
                                        <strong class="font-bold">讯聪管理系统</strong>
                                    </span>
                            </span>
                        </a>
zq-erp/src/main/resources/templates/views/common/login.html
@@ -37,7 +37,7 @@
        .download-bar a:hover {
            text-decoration: underline;
            color: #fff;
            color: #4968bd;
        }
    </style>
    <script>
@@ -271,7 +271,9 @@
                    href="https://pubstorage-bucket.oss-cn-shenzhen.aliyuncs.com/tools/xp/49.0.2623.112_chrome_installer.exe "
                    target="_blank">谷歌浏览器(推荐)</a><span>|</span><strong>打印控件:</strong><a
                    href="https://pubstorage-bucket.oss-cn-shenzhen.aliyuncs.com/tools/CLodop_Setup_for_Win32NT_https_3.056Extend.exe"
                    target="_blank">下载控件</a><span>|</span>
                    target="_blank">下载控件</a><span>|</span><strong>APP:</strong><a
                    href="http://testfile.hive.jyymatrix.cc/mobile/download.html"
                    target="_blank">下载APP客户端</a>
            </p>
        </div>
    </div>
zq-erp/src/test/java/com/matrix/FenxiaoSoreInitTest.java
@@ -13,10 +13,12 @@
import com.matrix.system.shopXcx.api.vo.SignBasicInfoVo;
import com.matrix.system.shopXcx.bean.ShopActivities;
import com.matrix.system.shopXcx.dao.ShopActivitiesDao;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.ArrayList;
@@ -33,6 +35,16 @@
    @Autowired
    private ActivitySignAwardSetDao activitySignAwardSetDao;
    @Autowired
    private TestRestTemplate restTemplate;
    @Test
    public void getName() {
        String name = restTemplate.getForObject("/common/job", String.class);
        System.out.println(name);
        Assert.assertEquals("1", name);
    }
    @Test
    public void getSignBasicInfo() {