From 0c569ab4b38d972213eeaf7e8965f33f8ec650fd Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期二, 05 十一月 2024 11:19:19 +0800 Subject: [PATCH] 11.5 --- ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java | 117 ++++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 89 insertions(+), 28 deletions(-) diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java index 5752cdb..491bab0 100644 --- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java +++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java @@ -3,21 +3,10 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.ruoyi.admin.entity.MasterWorker; -import com.ruoyi.admin.entity.RecoveryClassify; -import com.ruoyi.admin.entity.RecoveryServe; -import com.ruoyi.admin.entity.RecoveryServePrice; -import com.ruoyi.admin.entity.Region; -import com.ruoyi.admin.entity.Site; +import com.ruoyi.admin.entity.*; import com.ruoyi.admin.netty.NettyChannelMap; import com.ruoyi.admin.netty.NettyWebSocketController; -import com.ruoyi.admin.service.MasterWorkerService; -import com.ruoyi.admin.service.OrderService; -import com.ruoyi.admin.service.RecoveryClassifyService; -import com.ruoyi.admin.service.RecoveryServePriceService; -import com.ruoyi.admin.service.RecoveryServeService; -import com.ruoyi.admin.service.RegionService; -import com.ruoyi.admin.service.SiteService; +import com.ruoyi.admin.service.*; import com.ruoyi.admin.utils.DescribeInstances; import com.ruoyi.admin.vo.OrderByServeRecordVO; import com.ruoyi.admin.vo.OrderDetailVO; @@ -54,13 +43,7 @@ import java.nio.file.Files; import java.nio.file.Paths; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; @@ -146,7 +129,8 @@ @Resource private RecoveryClassifyService recoveryClassifyService; - + @Resource + private FranchiseeService franchiseeService; /** * 订单列表 * @@ -172,7 +156,21 @@ List<Integer> classIds = recoveryClassifyService.lambdaQuery().eq(RecoveryClassify::getId, orderQueryRequest.getClassNameId()).list().stream().map(RecoveryClassify::getId).collect(Collectors.toList()); servIds = recoveryServeService.lambdaQuery().eq(BaseEntity::getIsDelete,0).in(RecoveryServe::getClassifyId, classIds).list().stream().map(RecoveryServe::getId).collect(Collectors.toList()); } + if(orderQueryRequest.getServeId()!=null){ + servIds.add(orderQueryRequest.getServeId()); + } orderQueryRequest.setServIds(servIds); + Integer franchiseeId = loginUser.getSysUser().getFranchiseeId(); + if (franchiseeId!=null) { + Franchisee byId = franchiseeService.getById(franchiseeId); + String[] siteIds = byId.getSiteIds().split(","); + orderQueryRequest.setSiteIds(siteIds); + if (loginUser.getIsFranchisee() && siteIds.length == 0) { + return R.ok(new Page<Order>()); + } + } + + Page<Order> data = orderClient.queryPage(orderQueryRequest).getData(); if (null != data) { for (Order record : data.getRecords()) { @@ -200,6 +198,35 @@ @ApiOperation(value = "订单id列表-分页", tags = {"后台-订单管理"}) @PostMapping(value = "/queryIdList") public R<List<String>> queryIdList(@RequestBody OrderQueryRequest orderQueryRequest) { + LoginUser loginUser = tokenService.getLoginUser(); + if (null == loginUser) { + return R.loginExpire("登录失效!"); + } + if (loginUser.getIsFranchisee()) { + if (null == orderQueryRequest.getCityList() || orderQueryRequest.getCityList().isEmpty()) { + orderQueryRequest.setCityList(loginUser.getCityList()); + } else { + orderQueryRequest.getCityList().addAll(loginUser.getCityList()); + } + } + List<Integer> servIds = new ArrayList<>(); + if (orderQueryRequest.getClassNameId()!=null){ + List<Integer> classIds = recoveryClassifyService.lambdaQuery().eq(RecoveryClassify::getId, orderQueryRequest.getClassNameId()).list().stream().map(RecoveryClassify::getId).collect(Collectors.toList()); + servIds = recoveryServeService.lambdaQuery().eq(BaseEntity::getIsDelete,0).in(RecoveryServe::getClassifyId, classIds).list().stream().map(RecoveryServe::getId).collect(Collectors.toList()); + } + if(orderQueryRequest.getServeId()!=null){ + servIds.add(orderQueryRequest.getServeId()); + } + orderQueryRequest.setServIds(servIds); + Integer franchiseeId = loginUser.getSysUser().getFranchiseeId(); + if (franchiseeId!=null) { + Franchisee byId = franchiseeService.getById(franchiseeId); + String[] siteIds = byId.getSiteIds().split(","); + orderQueryRequest.setSiteIds(siteIds); + if (loginUser.getIsFranchisee() && siteIds.length == 0) { + return R.ok(); + } + } return R.ok(orderService.queryIdList(orderQueryRequest)); } /** @@ -225,8 +252,19 @@ List<Integer> classIds = recoveryClassifyService.lambdaQuery().eq(RecoveryClassify::getId, orderQueryRequest.getClassNameId()).list().stream().map(RecoveryClassify::getId).collect(Collectors.toList()); servIds = recoveryServeService.lambdaQuery().eq(BaseEntity::getIsDelete,0).in(RecoveryServe::getClassifyId, classIds).list().stream().map(RecoveryServe::getId).collect(Collectors.toList()); } + if (orderQueryRequest.getServeId()!=null){ + servIds.add(orderQueryRequest.getServeId()); + } orderQueryRequest.setServIds(servIds); - + Integer franchiseeId = loginUser.getSysUser().getFranchiseeId(); + if (franchiseeId!=null) { + Franchisee byId = franchiseeService.getById(franchiseeId); + String[] siteIds = byId.getSiteIds().split(","); + orderQueryRequest.setSiteIds(siteIds); + if (loginUser.getIsFranchisee() && siteIds.length == 0) { + return R.ok(); + } + } return R.ok(orderClient.orderPageCount(orderQueryRequest).getData()); } @@ -366,12 +404,7 @@ @RequiresPermissions("order_reassignment") @ApiOperation(value = "订单列表-订单派单/改派", tags = {"后台-订单管理"}) @PostMapping(value = "/reassignment") - @ApiImplicitParams({ - @ApiImplicitParam(value = "操作类型(1:订单派单;2:订单改派)", name = "type", dataType = "Integer", required = true), - @ApiImplicitParam(value = "订单id", name = "orderId", dataType = "Integer", required = true), - @ApiImplicitParam(value = "服务人员id", name = "workerId", dataType = "Integer", required = true), - @ApiImplicitParam(value = "改派原因", name = "applyReason", dataType = "String") - }) + @Transactional(rollbackFor = Exception.class) public R<String> reassignment(@RequestBody OrderReasinDto orderReasinDto) { // String[] split = orderIds.split(","); @@ -388,11 +421,22 @@ if (Constants.TWO.equals(orderId.getType())) { if (order.getState().equals(Constants.SIX) || order.getState().equals(Constants.THREE)) { orderClient.updateState(order.getId(), Constants.ONE); + + //如果是待改派,将上门时间设置为最新的,并且更新再投原因 + if (order.getState().equals(Constants.SIX)){ + dispatchClient.changeReason(order.getId(), orderReasinDto.getReason()); + orderClient.updateArrivalTime(order.getId(),orderReasinDto.getArriveTime()); + } + } // 订单状态为 待完工时,需要更改状态 待上门且清空师傅到达预约点时间 if (order.getState().equals(Constants.TWO)) { orderClient.updateStateAndArrivalTime(orderId.getOrderId(), Constants.ONE); } + + + + // 生成改派信息 // ChangeDispatch changeDispatch = new ChangeDispatch(); // changeDispatch.setWorkerId(item.getServerId()); @@ -517,8 +561,23 @@ orderCountDataRequest.setCityList(cityList); orderCountDataRequest.setPageNum(pageNum); orderCountDataRequest.setPageSize(pageSize); + + + Integer franchiseeId = loginUser.getSysUser().getFranchiseeId(); + String[] siteIds = new String[0]; + if (franchiseeId!=null) { + Franchisee byId = franchiseeService.getById(franchiseeId); + siteIds = byId.getSiteIds().split(","); + orderCountDataRequest.setSiteIds(Arrays.asList(siteIds)); + if (loginUser.getIsFranchisee() && siteIds.length == 0) { + return R.ok(new Page<>()); + } + } // 远程调用 Page<OrderCountVO> data = orderClient.orderCount(orderCountDataRequest).getData(); + + + List<Integer> idList = data.getRecords().stream().map(OrderCountVO::getWorkerId) .collect(Collectors.toList()); List<MasterWorker> masterWorkerList; @@ -606,6 +665,7 @@ OrderByServeRecordVO orderByServeRecord = new OrderByServeRecordVO(); String masterFolderPath = "/usr/local/coordinate/" + id; +// String masterFolderPath = "F:/DeskTop/coordinate/" + id; File masterFolder = new File(masterFolderPath); // 检查师傅ID的文件夹是否存在,存在就读取轨迹数据 System.out.println("文件是否存在:" + masterFolder.exists()); @@ -619,6 +679,7 @@ orderByServeRecord.setCoordinate(coordinateList); //获取轨迹标点 String baseMarkerPath = "/usr/local/marker/" + id; +// String baseMarkerPath = "F:/DeskTop/marker/" + id; //标点根目录 File markerMasterFolder = new File(baseMarkerPath); if (markerMasterFolder.exists()) { -- Gitblit v1.7.1