From a1dd09b905842ae0e58537457861550c57454327 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期一, 21 四月 2025 16:33:56 +0800
Subject: [PATCH] 2.0迭代
---
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/ChangeDispatchController.java | 225 ++++++++++++++++++++++++++------------------------------
1 files changed, 105 insertions(+), 120 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 b24c938..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,22 +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.admin.sorcket.WebSocketServer;
-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;
@@ -24,10 +25,9 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
-import java.io.IOException;
-import java.util.Arrays;
+import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
-import java.util.stream.Collectors;
/**
* <p>
@@ -43,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;
/**
* 订单改派分页列表
*
@@ -60,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);
}
/**
@@ -84,18 +108,7 @@
@ApiOperation(value = "新增订单改派", tags = {"后台-系统设置-订单改派管理"})
@PostMapping(value = "/save")
public R<Boolean> save(@RequestBody ChangeDispatch changeDispatch) {
- return R.ok(changeDispatchService.save(changeDispatch));
- }
-
- /**
- * 订单改派 -远程调用
- *
- * @param changeDispatch 订单改派信息
- */
- @ApiOperation(value = "新增订单改派", tags = {"后台-系统设置-订单改派管理"})
- @PostMapping(value = "/changeDispatchSave")
- public R<Boolean> changeDispatchSave(@RequestBody ChangeDispatch changeDispatch) {
- return R.ok(changeDispatchService.save(changeDispatch));
+ return R.ok(dispatchClient.save(changeDispatch).getData());
}
/**
@@ -103,48 +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);
- }
-
- /**
- * 订单改派详情 远程调用
- *
- * @param id 订单id
- */
- @GetMapping(value = "/changeDispatchOne")
- @ApiImplicitParams({
- @ApiImplicitParam(value = "订单改派id", name = "id", dataType = "Integer", required = true)
- })
- public R<ChangeDispatch> changeDispatchOne(@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);
}
/**
@@ -152,71 +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("订单不存在!");
- }
- 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();
- try {
- WebSocketServer.sendInfo("您有一条新的订单,请注意查收!", String.valueOf(workerId));
- return orderUpdate && save && update ? R.ok() : R.fail();
- } catch (IOException e) {
- return 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