无关风月
26 分钟以前 b5ead35c1d955f2a0e2e10da79254860d0ba95e9
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/ChangeDispatchController.java
@@ -2,13 +2,22 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.admin.entity.Franchisee;
import com.ruoyi.admin.entity.MasterWorker;
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.sorcket.WebSocketServer;
import com.ruoyi.common.core.domain.R;
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;
@@ -16,7 +25,9 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
 * <p>
@@ -35,7 +46,10 @@
    private ExchangeDispatchClient dispatchClient;
    @Resource
    private MasterWorkerService masterWorkerService;
    @Resource
    private TokenService tokenService;
    @Resource
    private FranchiseeService franchiseeService;
    /**
     * 订单改派分页列表
     *
@@ -47,15 +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<Page<ChangeDispatch>> queryPageList(String workerName, String orderNumber, String userName,
    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) {
        return dispatchClient.queryPageList(workerName, orderNumber, userName, pageNum, 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);
    }
    /**
@@ -74,7 +116,7 @@
     *
     * @param id 订单改派id
     */
    @RequiresPermissions("reassignment_apply")
    @RequiresPermissions("reassignment_detail")
    @ApiOperation(value = "订单改派详情", tags = {"后台-系统设置-订单改派管理"})
    @GetMapping(value = "/detail")
    @ApiImplicitParams({
@@ -89,7 +131,7 @@
     *
     * @param ids 订单改派多条id拼接
     */
    @RequiresPermissions("reassignment_apply")
    @RequiresPermissions("reassignment_delete")
    @ApiOperation(value = "批量删除订单改派", tags = {"后台-系统设置-订单改派管理"})
    @GetMapping(value = "/batchDelete")
    @ApiImplicitParams({
@@ -104,7 +146,7 @@
     *
     * @param id 改派申请记录id
     */
    @RequiresPermissions("reassignment_apply")
    @RequiresPermissions("reassignment_reject")
    @ApiOperation(value = "拒绝订单改派申请", tags = {"后台-系统设置-订单改派管理"})
    @GetMapping(value = "/refuse")
    @ApiImplicitParams({
@@ -113,21 +155,27 @@
    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 String changeId, @RequestParam Integer workerId) {
    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) {
@@ -135,13 +183,23 @@
        }
        Boolean data = dispatchClient.changeWorker(changeId, workerId, masterWorker.getRealName(),
                masterWorker.getPhone()).getData();
        if (null != data && data) {
            try {
                WebSocketServer.sendInfo("您有一条新的订单,请注意查收!", String.valueOf(workerId));
                return R.ok();
            } catch (IOException e) {
                return R.fail("师傅不在线!");
            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("订单推送异常!");
    }