From 1442f149019ee0590389abd7a88a79c4d9b59034 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期二, 27 五月 2025 18:23:34 +0800 Subject: [PATCH] bug修改 --- ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/ChangeDispatchController.java | 196 ++++++++++++++++++++++++++---------------------- 1 files changed, 106 insertions(+), 90 deletions(-) diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/ChangeDispatchController.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/ChangeDispatchController.java index be6ad9f..4d40e73 100644 --- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/ChangeDispatchController.java +++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/ChangeDispatchController.java @@ -1,21 +1,23 @@ package com.ruoyi.admin.controller; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.ruoyi.admin.entity.ChangeDispatch; +import com.ruoyi.admin.entity.Franchisee; import com.ruoyi.admin.entity.MasterWorker; -import com.ruoyi.admin.entity.Order; -import com.ruoyi.admin.service.ChangeDispatchService; +import com.ruoyi.admin.netty.NettyChannelMap; +import com.ruoyi.admin.netty.NettyWebSocketController; +import com.ruoyi.admin.service.FranchiseeService; import com.ruoyi.admin.service.MasterWorkerService; -import com.ruoyi.admin.service.OrderService; -import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.core.exception.GlobalException; -import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.common.core.utils.bean.BeanUtils; import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.common.security.service.TokenService; +import com.ruoyi.order.api.entity.ChangeDispatch; +import com.ruoyi.order.api.entity.Order; +import com.ruoyi.order.api.feignClient.ExchangeDispatchClient; +import com.ruoyi.order.api.feignClient.OrderClient; +import com.ruoyi.order.api.request.ChangeDispatchRequest; +import com.ruoyi.system.api.model.LoginUser; +import io.netty.channel.ChannelHandlerContext; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -23,9 +25,9 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import java.util.Arrays; +import java.util.ArrayList; +import java.util.Date; import java.util.List; -import java.util.stream.Collectors; /** * <p> @@ -41,12 +43,13 @@ public class ChangeDispatchController { @Resource - private ChangeDispatchService changeDispatchService; - @Resource - private OrderService orderService; + private ExchangeDispatchClient dispatchClient; @Resource private MasterWorkerService masterWorkerService; - + @Resource + private TokenService tokenService; + @Resource + private FranchiseeService franchiseeService; /** * 订单改派分页列表 * @@ -58,20 +61,43 @@ @GetMapping(value = "/page") @ApiImplicitParams({ @ApiImplicitParam(value = "师傅名称", name = "workerName", dataType = "String"), + @ApiImplicitParam(value = "预约人名称", name = "reservationName", dataType = "String"), @ApiImplicitParam(value = "订单编号", name = "orderNumber", dataType = "String"), @ApiImplicitParam(value = "下单用户名称", name = "userName", dataType = "String"), + @ApiImplicitParam(value = "下单用户手机号", name = "reservationPhone", dataType = "String"), + @ApiImplicitParam(value = "地址", name = "reservationAddress", dataType = "String"), @ApiImplicitParam(value = "页码", name = "pageNum", dataType = "Integer", required = true), @ApiImplicitParam(value = "每页条数", name = "pageSize", dataType = "Integer", required = true) }) - public R<IPage<ChangeDispatch>> queryPageList(String workerName, String orderNumber, String userName, - @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, - @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { - LambdaQueryChainWrapper<ChangeDispatch> wrapper = changeDispatchService.lambdaQuery(); - wrapper = StringUtils.isNotBlank(workerName) ? wrapper.like(ChangeDispatch::getWorkerName, workerName) : wrapper; - wrapper = StringUtils.isNotBlank(orderNumber) ? wrapper.like(ChangeDispatch::getOrderNumber, orderNumber) : wrapper; - wrapper = StringUtils.isNotBlank(userName) ? wrapper.like(ChangeDispatch::getUserName, userName) : wrapper; - return R.ok(wrapper.eq(ChangeDispatch::getIsDelete, 0) - .orderByDesc(ChangeDispatch::getCreateTime).page(Page.of(pageNum, pageSize))); + public R<Page<ChangeDispatch>> queryPageList(String workerName, String orderNumber, String userName,String reservationAddress, + String reservationName,String reservationPhone, + @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { + LoginUser loginUser = tokenService.getLoginUser(); + List<String> cityList = new ArrayList<>(); + if (loginUser.getIsFranchisee()) { + cityList = loginUser.getCityList(); + } + ChangeDispatchRequest changeDispatchRequest = new ChangeDispatchRequest(); + changeDispatchRequest.setWorkerName(workerName); + changeDispatchRequest.setOrderNumber(orderNumber); + changeDispatchRequest.setUserName(userName); + changeDispatchRequest.setReservationAddress(reservationAddress); + changeDispatchRequest.setPageNum(pageNum); + changeDispatchRequest.setPageSize(pageSize); + changeDispatchRequest.setCityList(cityList); + changeDispatchRequest.setReservationName(reservationName); + changeDispatchRequest.setReservationPhone(reservationPhone); + Integer franchiseeId = loginUser.getSysUser().getFranchiseeId(); + if (franchiseeId!=null) { + Franchisee byId = franchiseeService.getById(franchiseeId); + String[] siteIds = byId.getSiteIds().split(","); + if (loginUser.getIsFranchisee() && siteIds.length == 0) { + return R.ok(new Page<ChangeDispatch>()); + } + changeDispatchRequest.setSiteIds(siteIds); + } + return dispatchClient.queryPageList(changeDispatchRequest); } /** @@ -82,7 +108,7 @@ @ApiOperation(value = "新增订单改派", tags = {"后台-系统设置-订单改派管理"}) @PostMapping(value = "/save") public R<Boolean> save(@RequestBody ChangeDispatch changeDispatch) { - return R.ok(changeDispatchService.save(changeDispatch)); + return R.ok(dispatchClient.save(changeDispatch).getData()); } /** @@ -90,31 +116,14 @@ * * @param id 订单改派id */ - @RequiresPermissions("reassignment_apply") + @RequiresPermissions("reassignment_detail") @ApiOperation(value = "订单改派详情", tags = {"后台-系统设置-订单改派管理"}) @GetMapping(value = "/detail") @ApiImplicitParams({ @ApiImplicitParam(value = "订单改派id", name = "id", dataType = "Integer", required = true) }) - public R<ChangeDispatch> detail(@RequestParam Integer id) { - return R.ok(changeDispatchService.getById(id)); - } - - /** - * 订单改派详情 远程调用 - * - * @param id 订单id - */ - @GetMapping(value = "/one") - @ApiImplicitParams({ - @ApiImplicitParam(value = "订单改派id", name = "id", dataType = "Integer", required = true) - }) - public R<ChangeDispatch> one(@RequestParam("id") Integer id) { - ChangeDispatch changeDispatch = changeDispatchService.lambdaQuery() - .eq(ChangeDispatch::getOrderId, id) - .eq(ChangeDispatch::getState, Constants.ZERO) - .one(); - return R.ok(changeDispatch); + public R<ChangeDispatch> detail(@RequestParam String id) { + return dispatchClient.detail(id); } /** @@ -122,70 +131,77 @@ * * @param ids 订单改派多条id拼接 */ - @RequiresPermissions("reassignment_apply") + @RequiresPermissions("reassignment_delete") @ApiOperation(value = "批量删除订单改派", tags = {"后台-系统设置-订单改派管理"}) @GetMapping(value = "/batchDelete") @ApiImplicitParams({ @ApiImplicitParam(value = "多条订单改派id ',' 拼接", name = "ids", dataType = "String", required = true) }) public R<String> batchDelete(@RequestParam String ids) { - List<String> idList = Arrays.stream(ids.split(",")).collect(Collectors.toList()); - List<ChangeDispatch> list = changeDispatchService.lambdaQuery().in(ChangeDispatch::getId, idList).list(); - list.forEach(data -> data.setIsDelete(1)); - return changeDispatchService.updateBatchById(list) ? R.ok() : R.fail(); + return dispatchClient.batchDelete(ids); } + /** + * 拒绝订单改派申请 + * + * @param id 改派申请记录id + */ + @RequiresPermissions("reassignment_reject") + @ApiOperation(value = "拒绝订单改派申请", tags = {"后台-系统设置-订单改派管理"}) + @GetMapping(value = "/refuse") + @ApiImplicitParams({ + @ApiImplicitParam(value = "改派申请记录id", name = "id", dataType = "String", required = true) + }) + public R<Boolean> refuse(@RequestParam("id") String id) { + return dispatchClient.refuseChangeDispatch(id); + } + @Resource + private OrderClient orderClient; /** * 订单改派师傅 * * @param changeId 改派订单id * @param workerId 师傅id */ - @RequiresPermissions("reassignment_apply") + @RequiresPermissions("reassignment_reassignment") @ApiOperation(value = "订单改派师傅", tags = {"后台-系统设置-订单改派管理"}) @GetMapping(value = "/changeWorker") @ApiImplicitParams({ - @ApiImplicitParam(value = "改派订单id", name = "changeId", dataType = "Integer", required = true), - @ApiImplicitParam(value = "师傅id", name = "workerId", dataType = "Integer", required = true) + @ApiImplicitParam(value = "改派订单id", name = "changeId", dataType = "String", required = true), + @ApiImplicitParam(value = "订单id", name = "orderId", dataType = "String", required = true), + @ApiImplicitParam(value = "师傅id", name = "workerId", dataType = "Integer", required = true), + @ApiImplicitParam(value = "时间", name = "arriveTime", dataType = "String", required = true), }) - public R<String> changeWorker(@RequestParam Integer changeId, @RequestParam Integer workerId) { - ChangeDispatch changeDispatch = changeDispatchService.lambdaQuery().eq(ChangeDispatch::getId, changeId) - .eq(ChangeDispatch::getIsDelete, 0).one(); - if (null == changeDispatch || Constants.ONE.equals(changeDispatch.getState())) { - throw new GlobalException("改派申请不存在或已改派!"); - } - Order order = orderService.lambdaQuery().eq(Order::getId, changeDispatch.getOrderId()) - .eq(Order::getIsDelete, 0).one(); - if (null == order) { - throw new GlobalException("订单不存在!"); - } - // 判断订单状态 - if (!Constants.ZERO.equals(order.getState())) { - throw new GlobalException("订单已有师傅正在处理!"); - } - MasterWorker masterWorker = masterWorkerService.lambdaQuery().eq(MasterWorker::getId, workerId) - .eq(MasterWorker::getIsDelete, 0).one(); - // 师傅信息 + public R<String> changeWorker(@RequestParam String changeId, + @RequestParam String orderId, + @RequestParam Integer workerId, + @RequestParam String arriveTime) { + MasterWorker masterWorker = masterWorkerService.lambdaQuery() + .eq(MasterWorker::getId, workerId).eq(MasterWorker::getIsDelete, 0).one(); if (null == masterWorker) { - throw new GlobalException("服务人员信息异常!"); + return R.fail("师傅信息异常!"); } - // 原订单状态改为 5:已改派 - order.setState(Constants.FIVE); - boolean orderUpdate = orderService.updateById(order); - // 生成新订单信息 - Order newOrder = new Order(); - BeanUtils.copyProperties(order, newOrder); - newOrder.setId(null); - newOrder.setServerId(workerId); - newOrder.setServerName(masterWorker.getRealName()); - newOrder.setServerPhone(masterWorker.getPhone()); - newOrder.setState(Constants.ONE); - // 构建新订单 - boolean save = orderService.save(newOrder); - // 改派信息 - boolean update = changeDispatchService.lambdaUpdate().set(ChangeDispatch::getState, 1) - .eq(ChangeDispatch::getId, changeId).eq(ChangeDispatch::getIsDelete, 0).update(); - return orderUpdate && save && update ? R.ok() : R.fail(); + Boolean data = dispatchClient.changeWorker(changeId, workerId, masterWorker.getRealName(), + masterWorker.getPhone()).getData(); + + + + if (null != data && data) { + ChannelHandlerContext context = NettyChannelMap.getData(String.valueOf(workerId)); + if (null != context) { + NettyWebSocketController.sendMsgToClient(context, "您有一条新的订单,请注意查收!"); + } + +// dispatchClient.changeReason(orderId, reason); + orderClient.updateArrivalTime(orderId,arriveTime); + return R.ok(); +// try { +// WebSocketServer.sendInfo("您有一条新的订单,请注意查收!", String.valueOf(workerId)); +// } catch (IOException e) { +// return R.fail("师傅不在线!"); +// } + } + return R.fail("订单推送异常!"); } } -- Gitblit v1.7.1