package com.matrix.system.padApi.action; import cn.hutool.core.collection.CollUtil; import com.matrix.core.exception.GlobleException; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.pojo.PaginationVO; import com.matrix.core.tools.StringUtils; import com.matrix.core.tools.WebUtil; 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.service.SysUsersService; import com.matrix.system.common.tools.DataAuthUtil; import com.matrix.system.constance.Dictionary; import com.matrix.system.enums.BooleanEnum; import com.matrix.system.hive.action.BaseController; 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.service.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; @CrossOrigin(origins = "*") @Api(value = "PadServiceAction", tags = "pad端服务单请求") @RestController @RequestMapping(value = "/api/pad/service") public class PadServiceAction extends BaseController { @Resource private SysProjServicesService projServicesSerivce; @Resource private SysProjUseService projUseService; @Resource private SysBedInfoService bedInfoService; @Autowired SysProjGoodsDao sysProjGoodsDao; @Resource private SysProjServicesService sysProjServicesService; @Resource private SysVipInfoService sysVipInfoService; @Autowired private SysBeauticianStateDao beauticianStateDao; @Autowired AchieveNewService achieveNewService; @Autowired private SysBedStateDao sysBedStateDao; @Autowired ShoppingGoodsAssembleDao goodsAssembleDao; @Autowired SysShopInfoDao shopInfoDao; @Resource private SysUsersService usersService; @Autowired private SysProjServicesDao sysProjServicesDao; @Autowired BusParameterSettingsDao busParameterSettingsDao; /** * 显示所有服务单列表 */ @ApiOperation(value = "显示所有服务单列表", notes = "显示所有服务单列表") @PostMapping(value = "/showList") public AjaxResult showList(@RequestBody SysProjServices projService, PaginationVO pageVo) { //默认排序 if (StringUtils.isBlank(pageVo.getSort())) { pageVo.setSort("create_time"); } if (StringUtils.isBlank(pageVo.getOrder())) { pageVo.setOrder("desc"); } if (!DataAuthUtil.hasAllShopAuth()) { projService.setShopId(getMe().getShopId()); } QueryUtil.setQueryLimitCom(projService); List dataList = projServicesSerivce.findInPage(projService, pageVo); AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, dataList, projServicesSerivce.findTotal(projService)); return result; } /** * 进入预约排班详情 * * @author 姜友瑶 */ @ApiOperation(value = "进入预约排班详情", notes = "进入预约排班详情") @PostMapping(value = "/serviceInfo") public AjaxResult findPbxq(@RequestBody SysProjServices projServicesVo) { QueryUtil.setQueryLimitCom(projServicesVo); // 获取服务单信息 SysProjServices projServices = null; if(projServicesVo.getId()!=null){ projServices= sysProjServicesService.findById(projServicesVo.getId()); }else if(StringUtils.isNotBlank(projServicesVo.getServiceNo())) { List byModel = sysProjServicesService.findByModel(projServicesVo); if (byModel.size() == 1) { projServices= sysProjServicesService.findById( byModel.get(0).getId()); } } if(projServices==null){ throw new GlobleException("未查询到单据信息"); } // 获取服务单所有信息 // 设置会员信息 projServices.setVipInfo(sysVipInfoService.findById(projServices.getVipId())); //补充服务单扩展信息=============== List 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()); projServices.setBedState(sysBedState); //补充服务单扩展信息===============END // 根据岗位名称查询员工 List pls = usersService.findByRoleName(true, Dictionary.STAFF_POST_PLS); pls.addAll(usersService.findByRoleName(true, Dictionary.STAFF_POST_PLZG)); List mls = usersService.findByRoleName(true, Dictionary.STAFF_POST_MLS); WebUtil.getRequest().setAttribute("pls", pls); WebUtil.getRequest().setAttribute("mls", mls); SysBedInfo bedInfo = new SysBedInfo(); bedInfo.setShopId(getMe().getShopId()); // 显示当前查询的服务订单的项目信息 AjaxResult result = AjaxResult.buildSuccessInstance(""); result.putInMap("obj", projServices); result.putInMap("serviceId", projServicesVo.getId()); result.putInMap("pageFlae", projServicesVo.getPageFlae()); result.putInMap("cw", bedInfoService.findByModel(bedInfo)); result.putInMap("pls", pls); result.putInMap("mls", mls); return result; } /** * 根据id取消预约 */ @ApiOperation(value = "根据id取消预约", notes = "根据id取消预约") @GetMapping(value = "/cancelOrder/{id}") public AjaxResult cancelOrder(@PathVariable("id")Long id) { SysProjServices checkProjServices = sysProjServicesDao.selectById(id); QueryUtil.setQueryLimitCom(checkProjServices); BusParameterSettings shopManageAbleCancelDfkOrder = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.SHOP_MANAGE_ABLE_CANCEL_DFK_ORDER, checkProjServices.getCompanyId()); if (StringUtils.isNotBlank(shopManageAbleCancelDfkOrder.getParamValue()) && BooleanEnum.TRUE.getValue() == shopManageAbleCancelDfkOrder.getIntParamValue()) { if (!checkProjServices.getState().equals(Dictionary.SERVICE_STATU_DYY) && !checkProjServices.getState().equals(Dictionary.SERVICE_STATU_DQR)) { return new AjaxResult(AjaxResult.STATUS_FAIL, "您只能取消待预约订单"); } }else{ if (checkProjServices.getState().equals(Dictionary.SERVICE_STATU_FWWC) || checkProjServices.getState().equals(Dictionary.SERVICE_STATU_FFJS)) { return new AjaxResult(AjaxResult.STATUS_FAIL, "当前状态无法取消订单"); } } int i = sysProjServicesService.modifyCancelProjServices(checkProjServices); if (i > 0) { return new AjaxResult(AjaxResult.STATUS_SUCCESS, "取消预约成功"); } else { return new AjaxResult(AjaxResult.STATUS_FAIL, "取消预约失败"); } } }