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