935090232@qq.com
2021-10-27 f19bca3ce7506e7a8225798e539aca178364aff8
zq-erp/src/main/java/com/matrix/system/hive/action/ProjServiceController.java
@@ -1,5 +1,7 @@
package com.matrix.system.hive.action;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.matrix.core.anotations.RemoveRequestToken;
import com.matrix.core.constance.MatrixConstance;
import com.matrix.core.exception.GlobleException;
@@ -12,23 +14,30 @@
import com.matrix.core.tools.excl.ExcelSheetPO;
import com.matrix.core.tools.excl.ExcelUtil;
import com.matrix.core.tools.excl.ExcelVersion;
import com.matrix.system.app.dto.IdSubmitDto;
import com.matrix.system.common.bean.BusParameterSettings;
import com.matrix.system.common.bean.SysUsers;
import com.matrix.system.common.constance.AppConstance;
import com.matrix.system.common.dao.BusParameterSettingsDao;
import com.matrix.system.common.dao.SysCompanyDao;
import com.matrix.system.common.service.SysUsersService;
import com.matrix.system.common.tools.DataAuthUtil;
import com.matrix.system.common.tools.ResponseHeadUtil;
import com.matrix.system.constance.Dictionary;
import com.matrix.system.hive.bean.*;
import com.matrix.system.hive.dao.*;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.pojo.TaoCanVo;
import com.matrix.system.hive.service.*;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.collections.CollectionUtils;
import org.jsoup.helper.DataUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@@ -36,7 +45,9 @@
import java.io.IOException;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
@@ -111,6 +122,14 @@
        }
        //补充服务单扩展信息===============
        List<SysBeauticianState> beauticianStateList = beauticianStateDao.selectBySerIds(id);
        if (CollUtil.isNotEmpty(beauticianStateList)) {
            for (SysBeauticianState sysBeauticianState : beauticianStateList) {
                if (sysBeauticianState.getProjUse().getTaocanId() != null) {
                    SysProjUse sysProjUse = projUseService.findById(sysBeauticianState.getProjUse().getTaocanId());
                    sysBeauticianState.getProjInfo().setName(sysProjUse.getProjName()+"--"+sysBeauticianState.getProjInfo().getName());
                }
            }
        }
        projServices.setServiceItems(beauticianStateList);
        SysBedState sysBedState = sysBedStateDao.selectBySerIdAndBedId(projServices.getId(), projServices.getBedId());
        projServices.setBedState(sysBedState);
@@ -140,7 +159,9 @@
        if (StringUtils.isBlank(pageVo.getOrder())) {
            pageVo.setOrder("desc");
        }
        projService.setShopId(getMe().getShopId());
        if (!DataAuthUtil.hasAllShopAuth()) {
            projService.setShopId(getMe().getShopId());
        }
        List<SysProjServices> dataList = projServicesSerivce.findInPage(projService, pageVo);
        AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, dataList, projServicesSerivce.findTotal(projService));
        return result;
@@ -180,24 +201,17 @@
        AjaxResult result = AjaxResult.buildSuccessInstance("查询成功");
        SysProjUse queryUse = new SysProjUse();
        if(Objects.nonNull(vipId)){
            queryUse.setVipId(vipId);
        }else{
            SysVipInfo vipInfo = getCurrentVioInfo();
            queryUse.setVipId(vipInfo.getId());
        }
        queryUse.setVipId(vipId);
        queryUse.setType(Dictionary.SHOPPING_GOODS_TYPE_XM);
        queryUse.setTaocanId(-1L);
        queryUse.setStatus(Dictionary.TAOCAN_STATUS_YX);
        queryUse.setIsOver(Dictionary.FLAG_NO_N);
        List<SysProjUse> projList = projUseService.findInPage(queryUse, null);
        //切换到套餐查询条件
        queryUse.setTaocanId(null);
        queryUse.setType(Dictionary.SHOPPING_GOODS_TYPE_TC);
        List<SysProjUse> taoCanList = projUseService.findInPage(queryUse, null);
        taoCanList.forEach(item->{
            item.setTaocanProjUse(projUseService.selectTaocanProjUse(item.getId()));
            item.setTaocanProjUse(projUseService.selectTaocanProjUse(item.getId(), queryUse.getStatus()));
            item.setProjInfo(shoppingGoodsDao.selectById(item.getProjId()));
        });
        result.putInMap("projList", projList);
@@ -276,6 +290,7 @@
        return "admin/hive/beautySalon/yypb-form";
    }
    /**
     * 进入预约排班详情
     *
@@ -306,6 +321,16 @@
        //补充服务单扩展信息===============
        List<SysBeauticianState> beauticianStateList = beauticianStateDao.selectBySerIds(projServices.getId());
        if (CollUtil.isNotEmpty(beauticianStateList)) {
            for (SysBeauticianState sysBeauticianState : beauticianStateList) {
                if (sysBeauticianState.getProjUse().getTaocanId() != null) {
                    SysProjUse sysProjUse = projUseService.findById(sysBeauticianState.getProjUse().getTaocanId());
                    if(sysProjUse != null) {
                        sysBeauticianState.getProjInfo().setName(sysProjUse.getProjName() + "--" + sysBeauticianState.getProjInfo().getName());
                    }
                }
            }
        }
        projServices.setServiceItems(beauticianStateList);
        SysBedState sysBedState = sysBedStateDao.selectBySerIdAndBedId(projServices.getId(), projServices.getBedId());
@@ -369,6 +394,17 @@
        }
    }
    @ApiOperation(value = "确认服务", notes = "确认服务")
    @PostMapping(value = "/confirmServiceOrder")
    public @ResponseBody AjaxResult confirmServiceOrder(Long id) {
        int i=sysProjServicesService.confirmServiceOrder(id);
        if(i>0){
            return AjaxResult.buildSuccessInstance("确认成功");
        }
        return AjaxResult.buildFailInstance("确认失败");
    }
    /**
     * @author jiangyouyao
@@ -395,11 +431,11 @@
    public @ResponseBody
    AjaxResult updateOrderTime(SysProjServices serviceQuery) {
        SysProjServices services = sysProjServicesDao.selectById(serviceQuery.getId());
        sysProjServicesDao.updateOrderTime(serviceQuery.getCreateTime(), serviceQuery.getId());
        sysProjServicesDao.updateOrderTime(serviceQuery.getConsumeTime(), serviceQuery.getId());
        // 更新业绩时间
        AchieveNew achieveNew = new AchieveNew();
        achieveNew.setServiceOrderId(serviceQuery.getId());
        achieveNew.setDatatime(serviceQuery.getCreateTime());
        achieveNew.setDatatime(serviceQuery.getConsumeTime());
        achieveNewService.modifyAchieveTime(achieveNew);
        return new AjaxResult(AjaxResult.STATUS_SUCCESS, "修改成功");
    }
@@ -425,6 +461,25 @@
        return new AjaxResult(AjaxResult.STATUS_SUCCESS, "成功");
    }
    @Autowired
    private SysCompanyDao sysCompanyDao;
    /**
     * 服务单打印
     */
    @RequestMapping(value = "/printOrder")
    public @ResponseBody
    ModelAndView printOrder() throws GlobleException {
        ModelAndView mv = new ModelAndView("admin/hive/beautySalon/print-service");
        SysUsers user=(SysUsers)WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
        String comRegisterCode = sysCompanyDao.selectById(user.getCompanyId()).getComRegisterCode();
        if(StringUtils.isNotBlank(comRegisterCode)){
            mv.addObject("page",comRegisterCode);
        }else {
            mv.addObject("page","taiyan");
        }
        return mv;
    }
    /**
     * 根据id对服务单进行派单
@@ -441,12 +496,33 @@
        }
    }
    @Autowired
    BusParameterSettingsDao busParameterSettingsDao;
    /**
     * 根据id取消预约
     */
    @RequestMapping(value = "/cancelOrder")
    public @ResponseBody
    AjaxResult cancelOrder(SysProjServices services) {
        SysProjServices checkProjServices = sysProjServicesDao.selectById(services.getId());
        BusParameterSettings shopManageAbleCancelDfkOrder = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.SHOP_MANAGE_ABLE_CANCEL_DFK_ORDER, checkProjServices.getCompanyId());
        if (StringUtils.isNotBlank(shopManageAbleCancelDfkOrder.getParamValue())
                && shopManageAbleCancelDfkOrder.getParamValue().equals(Dictionary.FLAG_YES)) {
            if (!checkProjServices.getState().equals(Dictionary.SERVICE_STATU_DYY)
                    && !checkProjServices.getState().equals(Dictionary.SERVICE_STATU_DQR)) {
                return new AjaxResult(AjaxResult.STATUS_FAIL, "您只能取消待预约订单");
            }
        }
        return erpCancelOrder(services);
    }
    /**
     * 根据id取消预约
     */
    @RequestMapping(value = "/erpCancelOrder")
    public @ResponseBody
    AjaxResult erpCancelOrder(SysProjServices services) {
        int i = sysProjServicesService.modifyCancelProjServices(services);
        if (i > 0) {
            return new AjaxResult(AjaxResult.STATUS_SUCCESS, "取消预约成功");
@@ -454,7 +530,6 @@
            return new AjaxResult(AjaxResult.STATUS_FAIL, "取消预约失败");
        }
    }
    /**
     * 设置服务单划扣成功
@@ -479,8 +554,7 @@
    @RequestMapping(value = "/addService")
    public @ResponseBody
    AjaxResult servicceAdd(@RequestBody SysProjServices sysProjServices) {
        SysVipInfo vipInfo = getCurrentVioInfo();
        sysProjServices.setVipId(vipInfo.getId());
        if (CollectionUtils.isEmpty(sysProjServices.getServiceItems())) {
            return new AjaxResult(AjaxResult.STATUS_FAIL, "没有选中可消耗的项目");
@@ -494,6 +568,9 @@
        VerifyResult balanceverifyResult = sysProjServicesService.checkBalance(sysProjServices);
        if (balanceverifyResult.isError()) {
            return new AjaxResult(AjaxResult.STATUS_FAIL, balanceverifyResult.getMsg());
        }
        if (StrUtil.isEmpty(sysProjServices.getState())) {
            sysProjServices.setState(Dictionary.SERVICE_STATU_DYY);
        }
        SysProjServices newSysProjServices = sysProjServicesService.addSysProjServices(sysProjServices);
        if (newSysProjServices != null) {
@@ -509,8 +586,8 @@
    @RequestMapping(value = "/addServiceForForm")
    public @ResponseBody
    AjaxResult servicceAddForForm(SysProjServices sysProjServices) {
        SysVipInfo vipInfo = getCurrentVioInfo();
        sysProjServices.setVipId(vipInfo.getId());
        if (CollectionUtils.isEmpty(sysProjServices.getServiceItems())) {
            return new AjaxResult(AjaxResult.STATUS_FAIL, "没有选中可消耗的项目");
@@ -549,6 +626,26 @@
    }
    @RequestMapping(value = "/addServiceProj")
    @ResponseBody
    public AjaxResult addServiceProj(SysProjServices sysProjServices) {
        return AjaxResult.buildSuccessInstance("保存成功");
    }
    /**
     * 删除服务单项目/套餐
     * @param id
     * @return
     */
    @RequestMapping(value = "/delServiceOrderItems")
    @ResponseBody
    public AjaxResult delServiceOrderItems(Long id) {
        sysProjServicesService.deleteProjServiceItemById(id);
        return AjaxResult.buildSuccessInstance("删除成功");
    }
    // 准备页面数据
    private void  pageDate() {
        // 根据岗位名称查询员工