| | |
| | | |
| | | |
| | | 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; |
| | |
| | | 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> |
| | |
| | | private ExchangeDispatchClient dispatchClient; |
| | | @Resource |
| | | private MasterWorkerService masterWorkerService; |
| | | |
| | | @Resource |
| | | private TokenService tokenService; |
| | | @Resource |
| | | private FranchiseeService franchiseeService; |
| | | /** |
| | | * 订单改派分页列表 |
| | | * |
| | |
| | | @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); |
| | | } |
| | | |
| | | /** |
| | |
| | | * |
| | | * @param id 订单改派id |
| | | */ |
| | | @RequiresPermissions("reassignment_apply") |
| | | @RequiresPermissions("reassignment_detail") |
| | | @ApiOperation(value = "订单改派详情", tags = {"后台-系统设置-订单改派管理"}) |
| | | @GetMapping(value = "/detail") |
| | | @ApiImplicitParams({ |
| | |
| | | * |
| | | * @param ids 订单改派多条id拼接 |
| | | */ |
| | | @RequiresPermissions("reassignment_apply") |
| | | @RequiresPermissions("reassignment_delete") |
| | | @ApiOperation(value = "批量删除订单改派", tags = {"后台-系统设置-订单改派管理"}) |
| | | @GetMapping(value = "/batchDelete") |
| | | @ApiImplicitParams({ |
| | |
| | | * |
| | | * @param id 改派申请记录id |
| | | */ |
| | | @RequiresPermissions("reassignment_apply") |
| | | @RequiresPermissions("reassignment_reject") |
| | | @ApiOperation(value = "拒绝订单改派申请", tags = {"后台-系统设置-订单改派管理"}) |
| | | @GetMapping(value = "/refuse") |
| | | @ApiImplicitParams({ |
| | |
| | | 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) { |
| | |
| | | } |
| | | 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("订单推送异常!"); |
| | | } |