From 67157345fe1878681e39ec186ef37ff6b3b5c1fc Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期六, 03 八月 2024 18:07:00 +0800
Subject: [PATCH] 8.3

---
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java |  106 ++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 97 insertions(+), 9 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 1f7169b..03c86ed 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
@@ -2,17 +2,16 @@
 
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.admin.entity.MasterWorker;
-import com.ruoyi.admin.entity.RecoveryServe;
-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.RecoveryServeService;
-import com.ruoyi.admin.service.SiteService;
+import com.ruoyi.admin.service.*;
+import com.ruoyi.admin.utils.AddressDto;
+import com.ruoyi.admin.utils.DescribeInstances;
+import com.ruoyi.admin.utils.OcrBase;
 import com.ruoyi.admin.vo.OrderDetailVO;
 import com.ruoyi.common.core.constant.Constants;
+import com.ruoyi.common.core.domain.BaseEntity;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.domain.Result;
 import com.ruoyi.common.core.utils.GaoDeMapUtil;
@@ -22,15 +21,22 @@
 import com.ruoyi.common.security.annotation.RequiresPermissions;
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.order.api.entity.*;
+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.OrderCountDataRequest;
 import com.ruoyi.system.api.model.LoginUser;
+import com.tencentcloudapi.ocr.v20181119.models.BusinessCardOCRResponse;
+import com.tencentcloudapi.ocr.v20181119.models.ClassifyDetectOCRResponse;
+import com.tencentcloudapi.ocr.v20181119.models.SmartStructuralOCRV2Response;
+import com.tencentcloudapi.ocr.v20181119.models.WaybillOCRResponse;
 import io.netty.channel.ChannelHandlerContext;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.collections4.Get;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
@@ -39,6 +45,7 @@
 import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  * <p>
@@ -105,6 +112,9 @@
         // 独立orderService
         return R.ok(orderService.orderListDetail(id));
     }
+    @Resource
+    private RecoveryClassifyService recoveryClassifyService;
+
 
     /**
      * 订单列表
@@ -126,6 +136,12 @@
                 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());
+        }
+        orderQueryRequest.setServIds(servIds);
         Page<Order> data = orderClient.queryPage(orderQueryRequest).getData();
         if (null != data) {
             for (Order record : data.getRecords()) {
@@ -138,7 +154,9 @@
                     record.setServerName(masterWorker.getRealName());
                     record.setServerPhone(masterWorker.getPhone());
                 }
-                record.setReservationAddress(record.getReservationAddress() + record.getAddress());
+                if (record.getAddress()!=null) {
+                    record.setReservationAddress(record.getReservationAddress() + record.getAddress());
+                }
             }
         }
         return R.ok(data);
@@ -162,6 +180,13 @@
                 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());
+        }
+        orderQueryRequest.setServIds(servIds);
+
         return R.ok(orderClient.orderPageCount(orderQueryRequest).getData());
     }
 
@@ -180,6 +205,9 @@
         return R.ok(orderClient.detail(id).getData());
     }
 
+
+    @Resource
+    private RecoveryServePriceService recoveryServePriceService;
     /**
      * 新增订单
      * 后台订单为指定订单,默认为待上门状态
@@ -216,9 +244,15 @@
         RecoveryServe recoveryServe = recoveryServeService.lambdaQuery()
                 .eq(RecoveryServe::getId, order.getServeId())
                 .eq(RecoveryServe::getIsDelete, 0).one();
+
         order.setServeName(recoveryServe.getServeName());
         order.setServePrice(recoveryServe.getDefaultPrice());
-        order.setOrderMoney(recoveryServe.getDefaultPrice());
+        RecoveryServePrice one = recoveryServePriceService.lambdaQuery().eq(RecoveryServePrice::getCity, order.getCityCode()).eq(RecoveryServePrice::getRecoveryServeId, order.getServeId()).eq(BaseEntity::getIsDelete, 0).one();
+        if (one==null) {
+            order.setOrderMoney(recoveryServe.getDefaultPrice());
+        }else {
+            order.setOrderMoney(one.getRecoveryPrice());
+        }
         Boolean data = orderClient.save(order).getData();
         if (null == data) {
             return R.fail(orderClient.save(order).getMsg());
@@ -233,6 +267,52 @@
         return data ? R.ok() : R.fail();
     }
 
+
+
+
+
+    @ApiOperation(value = "订单列表-编辑", tags = {"后台-订单管理"})
+    @PostMapping(value = "/edit")
+    public R<String> edit(@RequestBody OrderRequest order) {
+        // 站点信息
+        Site site = siteService.lambdaQuery()
+                .eq(Site::getId, order.getSiteId())
+                .eq(Site::getIsDelete, 0).one();
+        order.setSiteName(site.getSiteName());
+        // 师傅信息
+        if (null != order.getServerId()) {
+            MasterWorker masterWorker = masterWorkerService.lambdaQuery()
+                    .eq(MasterWorker::getId, order.getServerId())
+                    .eq(MasterWorker::getIsDelete, 0).one();
+            order.setServerName(masterWorker.getRealName());
+            order.setServerPhone(masterWorker.getPhone());
+        } else {
+            // 待派单状态
+            order.setState(Constants.ZERO);
+        }
+        RecoveryServe recoveryServe = recoveryServeService.lambdaQuery()
+                .eq(RecoveryServe::getId, order.getServeId())
+                .eq(RecoveryServe::getIsDelete, 0).one();
+        RecoveryServePrice one = recoveryServePriceService.lambdaQuery().eq(RecoveryServePrice::getCity, order.getCityCode()).eq(RecoveryServePrice::getRecoveryServeId, order.getServeId()).eq(BaseEntity::getIsDelete, 0).last("limit 1").one();
+        if (one==null) {
+            order.setOrderMoney(recoveryServe.getDefaultPrice());
+        }else {
+            order.setOrderMoney(one.getRecoveryPrice());
+        }
+        // 后台订单
+        order.setType(Constants.ONE);
+        Boolean data = orderClient.edit(order).getData();
+
+        System.out.println("服务人员id:" + order.getServerId());
+        ChannelHandlerContext context = NettyChannelMap.getData(String.valueOf(order.getServerId()));
+        System.out.println("socket连接信息:" + context);
+        if (null != context) {
+            System.out.println("服务端发送消息到: " + order.getServerId());
+            NettyWebSocketController.sendMsgToClient(context, "您有一条新的订单,请注意查收!");
+        }
+        return data ? R.ok() : R.fail();
+
+    }
     /**
      * 订单派单/改派
      *
@@ -309,6 +389,8 @@
         return R.ok(orderClient.batchDelete(ids).getData());
     }
 
+
+
     /**
      * 订单列表-excel导出
      *
@@ -335,6 +417,12 @@
         return orderClient.oldData(index, pageNum, pageSize);
     }
 
+    @ApiOperation(value = "ocr识别", tags = {"后台-首页"})
+    @PostMapping (value = "/ocr")
+    public R<AddressDto> ocr(OcrBase ocrBase) {
+        return R.ok(DescribeInstances.orcr(ocrBase.getBase()));
+    }
+
     /**
      * 订单列表-excel导出
      *

--
Gitblit v1.7.1