From ecca9ab70a9a87bcb60977c92fbf81053b8fc1bb Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期三, 04 九月 2024 09:17:55 +0800
Subject: [PATCH] 新增优化

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java |  173 ++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 152 insertions(+), 21 deletions(-)

diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
index 832d651..dd33eb8 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
@@ -1,36 +1,59 @@
 package com.ruoyi.order.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 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.exception.GlobalException;
+import com.ruoyi.common.core.vo.PaperInVo;
 import com.ruoyi.common.core.vo.Path;
-import com.ruoyi.order.entity.*;
+import com.ruoyi.order.entity.ChangeDispatch;
+import com.ruoyi.order.entity.Evaluate;
+import com.ruoyi.order.entity.Order;
+import com.ruoyi.order.entity.ServeCoordinate;
+import com.ruoyi.order.entity.ServeRecord;
 import com.ruoyi.order.request.OrderCountDataRequest;
 import com.ruoyi.order.request.OrderRequest;
 import com.ruoyi.order.request.OrderSubmitRequest;
 import com.ruoyi.order.request.UserOrderRequest;
-import com.ruoyi.order.service.*;
-import com.ruoyi.order.vo.*;
+import com.ruoyi.order.service.ChangeDispatchService;
+import com.ruoyi.order.service.EvaluateService;
+import com.ruoyi.order.service.OrderService;
+import com.ruoyi.order.service.ServeCoordinateService;
+import com.ruoyi.order.service.ServeRecordService;
+import com.ruoyi.order.vo.MoneyQueryRequest;
+import com.ruoyi.order.vo.OrderCountRequest;
+import com.ruoyi.order.vo.OrderCountVO;
+import com.ruoyi.order.vo.OrderDetailVO;
+import com.ruoyi.order.vo.OrderPageCountVO;
+import com.ruoyi.order.vo.OrderQueryRequest;
+import com.ruoyi.order.vo.OrderResultVO;
+import com.ruoyi.order.vo.WorkerOrderCountVO;
+import com.ruoyi.order.vo.WorkerOrderRankVO;
+import com.ruoyi.user.api.feignClient.UserClient;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.*;
-
-import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
+import javax.annotation.Resource;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
 /**
  * <p>
@@ -102,6 +125,36 @@
         return R.ok(orderService.lambdaUpdate()
                 .eq(Order::getId, orderId).set(Order::getState, state).update());
     }
+
+
+    @ApiOperation(value = "订单列表-增加打印次数", tags = {"后台-订单管理"})
+    @PostMapping(value = "/count")
+    public R<Boolean> count(@RequestParam("orderId") String orderId) {
+        Order byId = orderService.getById(orderId);
+        byId.setPrintCount(byId.getPrintCount()==null?1:byId.getPrintCount()+1);
+        orderService.updateById(byId);
+        return R.ok();
+    }
+
+    /**
+     * 增加发送短信次数
+     * @param orderId 订单id
+     */
+    @ApiOperation(value = "订单列表-增加发送短信次数", tags = {"后台-订单管理"})
+    @PostMapping(value = "/msgCount")
+    public R<?> messageCount(@RequestParam("orderId") String orderId) {
+        orderService.messageCount(orderId);
+        return R.ok();
+    }
+    @ApiOperation(value = "订单列表-获取入库单", tags = {"后台-订单管理"})
+    @PostMapping(value = "/papercount")
+    public R<List<PaperInVo>> inpaper(@RequestParam("workId") String workId,@RequestParam("date") String date) {
+
+        List<PaperInVo>  paper =   orderService.papercout(workId,date);
+        return R.ok(paper);
+    }
+
+
 
     /**
      * 更改订单状态且清空到达时间
@@ -252,6 +305,8 @@
         return R.ok(order);
     }
 
+    @Resource
+    private UserClient userClient;
     /**
      * 新增订单
      * 后台订单为指定订单,默认为待上门状态
@@ -261,6 +316,14 @@
     @ApiOperation(value = "订单列表-新增订单", tags = {"后台-订单管理"})
     @PostMapping(value = "/save")
     public R<Boolean> save(@RequestBody OrderRequest orderRequest) {
+
+        R<BigDecimal> servePrice = userClient.getServePrice(orderRequest.getServeId(), orderRequest.getCityCode());
+        if (servePrice.getData()!=null){
+            orderRequest.setOrderMoney(servePrice.getData());
+        }
+
+
+
         Order order = new Order();
         order.setCity(orderRequest.getCity());
         order.setOrderNumber(orderRequest.getOrderNumber());
@@ -269,7 +332,7 @@
         order.setSiteName(orderRequest.getSiteName());
         order.setServeId(orderRequest.getServeId());
         order.setServeName(orderRequest.getServeName());
-        order.setServePrice(orderRequest.getServePrice());
+        order.setServePrice(orderRequest.getOrderMoney());
         order.setSiteName(orderRequest.getSiteName());
         // 预约信息
         order.setReservationName(orderRequest.getReservationName());
@@ -278,6 +341,7 @@
 
         order.setTime(orderRequest.getTime());
         order.setAcceptTime(orderRequest.getAcceptTime());
+//        order.setAcceptTime(new Date());
         // 师傅信息
         order.setServerId(orderRequest.getServerId());
         order.setServerName(orderRequest.getServerName());
@@ -297,6 +361,8 @@
         order.setIsEvaluate(Constants.ZERO);
         order.setCityCode(orderRequest.getCityCode());
         order.setOrderMoney(orderRequest.getOrderMoney());
+        order.setProvinceCode(orderRequest.getProvinceCode());
+        order.setAreaCode(orderRequest.getAreaCode());
         return R.ok(orderService.save(order));
     }
 
@@ -304,8 +370,25 @@
     @ApiOperation(value = "订单列表-新增订单", tags = {"后台-订单管理"})
     @PostMapping(value = "/edit")
     public R<Boolean> edit(@RequestBody OrderRequest orderRequest) {
-        Order order = orderService.getById(orderRequest.getOrderId());
 
+        R<BigDecimal> servePrice = userClient.getServePrice(orderRequest.getServeId(), orderRequest.getCityCode());
+        if (servePrice.getData()!=null){
+            orderRequest.setOrderMoney(servePrice.getData());
+        }
+
+
+        Order order = orderService.getById(orderRequest.getOrderId());
+        if (order.getState()!=6) {
+            if ((!Objects.equals(order.getServerId(), orderRequest.getServerId())) || (!Objects.equals(order.getTime(), orderRequest.getTime()))) {
+                order.setState(1);
+                order.setArriveTime(null);
+                order.setAcceptTime(new Date());
+                orderService.lambdaUpdate()
+                        .eq(Order::getId, order.getId()
+                        ).set(Order::getArriveTime, null).update();
+
+            }
+        }
 
         order.setId(orderRequest.getOrderId());
         order.setCity(orderRequest.getCity());
@@ -315,35 +398,39 @@
         order.setSiteName(orderRequest.getSiteName());
         order.setServeId(orderRequest.getServeId());
         order.setServeName(orderRequest.getServeName());
-        order.setServePrice(orderRequest.getServePrice());
+        order.setServePrice(orderRequest.getOrderMoney());
         order.setSiteName(orderRequest.getSiteName());
+        order.setTime(orderRequest.getTime());
         // 预约信息
         order.setReservationName(orderRequest.getReservationName());
         order.setReservationPhone(orderRequest.getReservationPhone());
         order.setReservationAddress(orderRequest.getReservationAddress());
-        order.setTime(orderRequest.getTime());
-        order.setAcceptTime(orderRequest.getAcceptTime());
+//        order.setTime(orderRequest.getTime());
+//        order.setAcceptTime(orderRequest.getAcceptTime());
         // 师傅信息
         order.setServerId(orderRequest.getServerId());
         order.setServerName(orderRequest.getServerName());
         order.setServerPhone(orderRequest.getServerPhone());
         order.setReservationRemark(orderRequest.getReservationRemark());
-        if ((order.getServerId()!=orderRequest.getServerId())||(order.getTime()!=orderRequest.getTime())) {
-            order.setState(1);
-        }
+
         order.setArriveTime(orderRequest.getArriveTime());
-        order.setType(orderRequest.getType());
+//        order.setType(orderRequest.getType());
         order.setLongitude(orderRequest.getLongitude());
         order.setLatitude(orderRequest.getLatitude());
         order.setCompleteTime(orderRequest.getCompleteTime());
-        order.setSubsidy(orderRequest.getSubsidy());
+//        order.setSubsidy(orderRequest.getSubsidy());
         order.setIsWithdrawal(orderRequest.getIsWithdrawal());
         order.setAddress(orderRequest.getAddress());
         order.setCancelReason(orderRequest.getCancelReason());
         order.setApplyReason(orderRequest.getApplyReason());
         order.setIsEvaluate(Constants.ZERO);
         order.setCityCode(orderRequest.getCityCode());
-        order.setOrderMoney(orderRequest.getOrderMoney());
+        order.setOrderMoney(orderRequest.getServePrice());
+        if (order.getSubsidy()!=null){
+            order.setOrderMoney(order.getServePrice().add(order.getSubsidy()));
+        }
+        order.setProvinceCode(orderRequest.getProvinceCode());
+        order.setAreaCode(orderRequest.getAreaCode());
         return R.ok(orderService.updateById(order));
     }
 
@@ -362,6 +449,12 @@
         List<String> idList = Arrays.stream(ids.split(",")).collect(Collectors.toList());
         List<Order> list = orderService.lambdaQuery().in(Order::getId, idList).list();
         list.forEach(data -> data.setIsDelete(1));
+
+        List<ChangeDispatch> list1 = changeDispatchService.lambdaQuery().in(ChangeDispatch::getOrderId, idList).list();
+        if (!list1.isEmpty()) {
+            list1.forEach(data -> data.setIsDelete(1));
+            changeDispatchService.updateBatchById(list1);
+        }
         return R.ok(orderService.updateBatchById(list));
     }
 
@@ -418,6 +511,33 @@
         return R.ok(orderService.orderCountHome(orderCount));
     }
 
+    //获取师傅当天的订单
+    @PostMapping(value = "/workday")
+    public R<List<Order>> workday(@RequestBody Integer workId) {
+        // 获取当前日期
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+
+        // 使用 format 方法将 LocalDate 对象转换为字符串
+        String formattedToday = LocalDate.now().format(formatter);
+
+        System.out.println(formattedToday); // 输出:2023-09-12(假设今天是2023年9月12日)
+
+
+// 构建 Lambda 查询条件
+        LambdaQueryWrapper<Order> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper
+                .eq(Order::getTime, formattedToday) // 当天开始时间
+               ; // 当天结束时间
+
+// 执行查询
+        List<Order> orders = orderService.list(queryWrapper.eq(Order::getServerId,workId));
+
+// 处理查询结果
+        for (Order order : orders) {
+            System.out.println(order);
+        }
+        return R.ok(orders);
+    }
     /**
      * 用户所关联订单记录分页列表
      *
@@ -589,11 +709,15 @@
         }
         order.setCompleteTime(new Date());
         order.setState(Constants.THREE);
+        order.setFake(orderSubmitRequest.getFake());
         boolean update = orderService.updateById(order);
         // 服务记录
         ServeRecord serveRecord = new ServeRecord();
         serveRecord.setOrderId(order.getId());
         serveRecord.setPhoto(String.join(",", orderSubmitRequest.getPhoto()));
+        serveRecord.setPaperPic(orderSubmitRequest.getPaperPic());
+        serveRecord.setCardPic(orderSubmitRequest.getCardPic());
+        serveRecord.setMachinePic(orderSubmitRequest.getMachinePic());
         boolean save = serveRecordService.save(serveRecord);
         return R.ok(update && save);
     }
@@ -641,11 +765,18 @@
         wrapper.eq("server_id", workerId)
                 .in("state", 1, 2)
                 .eq("is_delete", Constants.ZERO)
-                .eq("DATE(createTime)", todayStr)  // 添加这一行来筛选当天的订单
+                .eq("DATE(time)", todayStr)  // 添加这一行来筛选当天的订单
                 .orderByAsc("CASE WHEN topSort IS NULL THEN 1 ELSE 0 END")
                 .orderByAsc("topSort");
 
-        return R.ok(orderService.list(wrapper));
+        List<Order> list = orderService.list(wrapper);
+        for (Order order : list) {
+            if (order.getAcceptTime()==null){
+                order.setAcceptTime(order.getCreateTime());
+            }
+        }
+
+        return R.ok(list);
     }
 
 

--
Gitblit v1.7.1