935090232@qq.com
2022-02-22 ecbc9879142993ab2e99e2712b5d5bba282c4b72
zq-erp/src/main/java/com/matrix/system/hive/action/ProjServiceController.java
@@ -1,5 +1,6 @@
package com.matrix.system.hive.action;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.matrix.core.anotations.RemoveRequestToken;
@@ -14,22 +15,29 @@
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.action.util.QueryUtil;
import com.matrix.system.hive.bean.*;
import com.matrix.system.hive.dao.*;
import com.matrix.system.hive.dto.ServiceOrderTimeDto;
import com.matrix.system.hive.service.*;
import com.matrix.system.hive.vo.ServiceOrderInfoVo;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
@@ -117,9 +125,28 @@
        List<SysBeauticianState> beauticianStateList = beauticianStateDao.selectBySerIds(id);
        if (CollUtil.isNotEmpty(beauticianStateList)) {
            for (SysBeauticianState sysBeauticianState : beauticianStateList) {
                SysProjUse item = sysBeauticianState.getProjUse();
                // 若项目/套餐无效,则打印时,不显示余次
                if (!"无效".equals(item.getStatus())) {
                    item.setRemainCount(item.getSurplusCount());
                } else {
                    item.setRemainCount(null);
                }
                if (sysBeauticianState.getProjUse().getTaocanId() != null) {
                    SysProjUse sysProjUse = projUseService.findById(sysBeauticianState.getProjUse().getTaocanId());
                    if (!"无效".equals(sysProjUse.getStatus())) {
                        item.setRemainCount(sysProjUse.getSurplusCount());
                    } else {
                        item.setRemainCount(null);
                    }
                    sysBeauticianState.getProjInfo().setName(sysProjUse.getProjName()+"--"+sysBeauticianState.getProjInfo().getName());
                    if ("Y".equals(sysProjUse.getIsCourse()) && "Y".equals(sysProjUse.getIsInfinite())) {
                        int count = projUseService.findTaocanCountForCourseAndInfinite(sysBeauticianState.getProjUse().getTaocanId(), projServices.getVipId());
                        item.setRemainCount(count);
                    }
                }
            }
        }
@@ -136,6 +163,20 @@
        result.setStatus(AjaxResult.STATUS_SUCCESS);
        return result;
    }
    /**
     * 根据id查询服务单简单信息
     */
    @RequestMapping(value = "/findServiceOrderInfoVo/{id}")
    public @ResponseBody
    AjaxResult findServiceOrderInfoVo(@PathVariable Long id) {
        // 获取服务单信息
        SysProjServices projServices = sysProjServicesService.findById(id);
        ServiceOrderInfoVo serviceOrderInfoVo= BeanUtil.copyProperties(projServices,ServiceOrderInfoVo.class);
        return AjaxResult.buildSuccessInstance(serviceOrderInfoVo);
    }
@@ -155,6 +196,7 @@
        if (!DataAuthUtil.hasAllShopAuth()) {
            projService.setShopId(getMe().getShopId());
        }
        QueryUtil.setQueryLimitCom(projService);
        List<SysProjServices> dataList = projServicesSerivce.findInPage(projService, pageVo);
        AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, dataList, projServicesSerivce.findTotal(projService));
        return result;
@@ -387,6 +429,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
@@ -411,13 +464,12 @@
     */
    @RequestMapping(value = "/updateOrderTime")
    public @ResponseBody
    AjaxResult updateOrderTime(SysProjServices serviceQuery) {
        SysProjServices services = sysProjServicesDao.selectById(serviceQuery.getId());
        sysProjServicesDao.updateOrderTime(serviceQuery.getConsumeTime(), serviceQuery.getId());
    AjaxResult updateOrderTime(@RequestBody  ServiceOrderTimeDto serviceOrderTimeDto) {
        sysProjServicesDao.updateOrderTime(serviceOrderTimeDto);
        // 更新业绩时间
        AchieveNew achieveNew = new AchieveNew();
        achieveNew.setServiceOrderId(serviceQuery.getId());
        achieveNew.setDatatime(serviceQuery.getConsumeTime());
        achieveNew.setServiceOrderId(serviceOrderTimeDto.getId());
        achieveNew.setDatatime(serviceOrderTimeDto.getConsumeTime());
        achieveNewService.modifyAchieveTime(achieveNew);
        return new AjaxResult(AjaxResult.STATUS_SUCCESS, "修改成功");
    }
@@ -478,6 +530,8 @@
        }
    }
    @Autowired
    BusParameterSettingsDao busParameterSettingsDao;
    /**
     * 根据id取消预约
@@ -485,6 +539,24 @@
    @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, "取消预约成功");
@@ -492,7 +564,6 @@
            return new AjaxResult(AjaxResult.STATUS_FAIL, "取消预约失败");
        }
    }
    /**
     * 设置服务单划扣成功
@@ -659,7 +730,7 @@
        String title = "服务订单明细";
        orderSheet.setSheetName(title);
        orderSheet.setTitle(title);
        String[] header = {"服务单号","会员名称", "会员手机号", "消耗金额","服务状态", "下单时间","预约时间","是否超时(超时分钟)", "床位", "美疗师", "配料师", "健康顾问", "所属门店"};
        String[] header = {"服务单号","会员名称", "会员手机号", "消耗金额","服务状态", "下单时间","预约时间","状态","是否超时(超时分钟)", "床位", "美疗师", "配料师", "健康顾问", "划扣人", "所属门店"};
        orderSheet.setHeaders(header);
        List<SysProjServices> dataList = projServicesSerivce.findByModel(projServices);
@@ -680,6 +751,7 @@
                temp.add(item.getBeautiName());
                temp.add(item.getPlsName());
                temp.add(item.getCreateStaffName());
                temp.add(item.getCashierName());
                temp.add(item.getShopName());
                list.add(temp);
            }