8.9
luodangjia
2024-08-11 90ab70ee2e1adc5f6f2cf3cac38df14b61568ba1
8.9
19个文件已修改
2个文件已添加
408 ■■■■■ 已修改文件
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/entity/Order.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/entity/OrderRequest.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/entity/ServeRecord.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/GaoDeMapUtil.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/vo/PaperInVo.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/vo/PrintDto.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/MasterWorker.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/OrderServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByServeRecordVO.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/pom.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/entity/Order.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/request/OrderRequest.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/OrderService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OrderController.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/entity/Order.java
@@ -34,7 +34,10 @@
    @ApiModelProperty("下单城市")
    @TableField("city")
    private String city;
    @TableField("province_code")
    private String provinceCode;
    @TableField("are_code")
    private String areaCode;
    @ApiModelProperty("订单编号")
    @TableField("order_number")
    private String orderNumber;
@@ -55,6 +58,11 @@
    @TableField("serve_id")
    private Integer serveId;
    @ApiModelProperty("打印次数")
    @TableField("print_count")
    private Integer printCount;
    @ApiModelProperty("回收服务名称")
    @TableField("serve_name")
    private String serveName;
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/entity/OrderRequest.java
@@ -24,6 +24,9 @@
    @ApiModelProperty("城市编码")
    private String cityCode;
    private String provinceCode;
    private String areaCode;
    @ApiModelProperty("订单编号")
    private String orderNumber;
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/entity/ServeRecord.java
@@ -38,5 +38,14 @@
    @ApiModelProperty("服务备注")
    @TableField("remark")
    private String remark;
    @ApiModelProperty("现场照片(多张照片 ','隔开)")
    @TableField("card_pic")
    private String cardPic;
    @ApiModelProperty("现场照片(多张照片 ','隔开)")
    @TableField("machine_pic")
    private String machinePic;
    @ApiModelProperty("现场照片(多张照片 ','隔开)")
    @TableField("paper_pic")
    private String paperPic;
}
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.vo.PaperInVo;
import com.ruoyi.common.core.vo.Path;
import com.ruoyi.order.api.entity.*;
import com.ruoyi.order.api.feignClient.OrderClient;
@@ -83,6 +84,18 @@
            }
            @Override
            public R<Boolean> count(String orderId) {
                return R.fail(cause.getMessage());
            }
            @Override
            public R<List<PaperInVo>> papercount(String workId, String date) {
                return null;
            }
            @Override
            public R<List<Integer>> queryIdsBycode(List<String> cityList) {
                return R.fail(cause.getMessage());
            }
@@ -103,6 +116,12 @@
            }
            @Override
            public R<List<Order>> workday(Integer workId) {
                return null;
            }
            @Override
            public R<Page<Order>> orderList(Integer userId, Integer pageNum, Integer pageSize) {
                return R.fail(cause.getMessage());
            }
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.constant.ServiceNameConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.vo.PaperInVo;
import com.ruoyi.common.core.vo.Path;
import com.ruoyi.order.api.entity.*;
import com.ruoyi.order.api.factory.OrderFallbackFactory;
@@ -137,6 +138,11 @@
    @PostMapping(value = "/order/updateState")
    R<Boolean> updateState(@RequestParam("orderId") String orderId, @RequestParam("state") Integer state);
    @PostMapping(value = "/order/count")
    R<Boolean> count(@RequestParam("orderId") String orderId);
    @PostMapping(value = "/order/papercount")
    R<List<PaperInVo>> papercount(@RequestParam("workId") String workId,@RequestParam("date") String date);
    @PostMapping(value = "/order/queryIdsBycode")
    R<List<Integer>> queryIdsBycode(@RequestBody List<String> cityList);
@@ -171,6 +177,9 @@
    @PostMapping(value = "/order/orderCountHome")
    R<OrderResultVO> orderCountHome(@RequestBody OrderCountRequest orderCount);
    @PostMapping(value = "/order/workday")
    R<List<Order>> workday(@RequestBody Integer workId);
    /**
     * 用户所关联订单记录分页列表
     *
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/GaoDeMapUtil.java
@@ -90,6 +90,10 @@
                if (reGeoCode.size() > 0) {
                    // 在regeocode中拿到 formatted_address 具体位置
                    String formatted = reGeoCode.get("formatted_address").toString();
                    JSONObject addressComponent = reGeoCode.getJSONObject("addressComponent");
                    String adcode = addressComponent.getString("adcode");
                    String s = convertToCityCode(adcode);
                    System.err.println("====s");
                    return Result.succeed(formatted, "地址获取成功!");
                } else {
@@ -104,6 +108,54 @@
        }
    }
    public static Result<String> getCityCode(String longitude, String latitude) {
        String url;
        try {
            url = "http://restapi.amap.com/v3/geocode/regeo?output=JSON&location=" + longitude + "," + latitude
                    + "&key=" + GAO_DE_KEY + "&radius=0&extensions=base";
            // 高德接口返回的是JSON格式的字符串
            String queryResult = getResponse(url);
            if (ObjectUtils.isNull(queryResult)) {
                return Result.failed("查询结果为空");
            }
            // 将获取结果转为json 数据
            JSONObject obj = JSONObject.parseObject(queryResult);
            if (obj.get(GaoDeEnum.STATUS.getCode()).toString().equals(GaoDeEnum.INT_ONE.getCode())) {
                // 如果没有返回-1
                JSONObject reGeoCode = obj.getJSONObject(GaoDeEnum.RE_GEO_CODE.getCode());
                if (reGeoCode.size() > 0) {
                    // 在regeocode中拿到 formatted_address 具体位置
                    String formatted = reGeoCode.get("formatted_address").toString();
                    JSONObject addressComponent = reGeoCode.getJSONObject("addressComponent");
                    String adcode = addressComponent.getString("adcode");
                    String s = convertToCityCode(adcode);
                    System.err.println("====s");
                    return Result.succeed(s, "地址获取成功!");
                } else {
                    return Result.failed("未找到相匹配的地址!");
                }
            } else {
                return Result.failed("请求错误!");
            }
        } catch (Exception e) {
            e.printStackTrace();
            return Result.failed("系统未知异常,请稍后再试");
        }
    }
    public static String convertToCityCode(String districtCode) {
        // 确保输入的字符串长度至少为6位
        if (districtCode.length() >= 6) {
            // 截取前6位中的前4位作为城市代码
            return districtCode.substring(0, 4) + "00";
        } else {
            throw new IllegalArgumentException("Invalid district code length: " + districtCode);
        }
    }
    /**
     * 功能描述: 根据两个定位点的经纬度算出两点间的距离
     * 经纬度格式为: 经度,纬度
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/vo/PaperInVo.java
New file
@@ -0,0 +1,10 @@
package com.ruoyi.common.core.vo;
import lombok.Data;
@Data
public class PaperInVo {
    Integer serveId;
    Long count;
    String name;
}
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/vo/PrintDto.java
New file
@@ -0,0 +1,13 @@
package com.ruoyi.common.core.vo;
import com.ruoyi.common.core.vo.PaperInVo;
import lombok.Data;
import java.util.List;
@Data
public class PrintDto {
   private   String name;
   private   String date;
   private List<PaperInVo> papers;
}
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java
@@ -10,6 +10,7 @@
import com.ruoyi.admin.utils.AddressDto;
import com.ruoyi.admin.utils.DescribeInstances;
import com.ruoyi.admin.utils.OcrBase;
import com.ruoyi.admin.vo.OrderByServeRecordVO;
import com.ruoyi.admin.vo.OrderDetailVO;
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.domain.BaseEntity;
@@ -18,6 +19,9 @@
import com.ruoyi.common.core.utils.GaoDeMapUtil;
import com.ruoyi.common.core.utils.SnowflakeIdWorker;
import com.ruoyi.common.core.vo.CityInfoVO;
import com.ruoyi.common.core.vo.PaperInVo;
import com.ruoyi.common.core.vo.PrintDto;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.annotation.Logical;
import com.ruoyi.common.security.annotation.RequiresPermissions;
import com.ruoyi.common.security.service.TokenService;
@@ -43,7 +47,11 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.math.BigDecimal;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -494,4 +502,128 @@
        return R.ok(data);
    }
    @ApiOperation(value = "打印计数", tags = {"后台-订单管理"})
    @PostMapping(value = "/print")
    public R print(@RequestParam Long id) {
        orderClient.count(String.valueOf(id));
        return R.ok();
    }
    @ApiOperation(value = "打印入库单子", tags = {"后台-订单管理"})
    @PostMapping(value = "/paperCount")
    public R paperCount(@RequestParam Integer id,@RequestParam String date) {
        R<List<PaperInVo>> papercount = orderClient.papercount(String.valueOf(id),date);
        for (PaperInVo datum : papercount.getData()) {
                datum.setName(recoveryServeService.getById(datum.getServeId()).getServeName());
        }
        PrintDto printDto =new PrintDto();
        printDto.setName(masterWorkerService.getById(id).getRealName());
        printDto.setPapers(papercount.getData());
        printDto.setDate(date);
        return R.ok(printDto);
    }
    @Resource
    private RedisService redisService;
    @ApiOperation(value = "地图统计", tags = {"后台-订单管理-地图统计"})
    @PostMapping(value = "/map/works")
    public R<List<MasterWorker>> map(String cityCode) {
        LoginUser loginUser = tokenService.getLoginUser();
        if (null == loginUser) {
            return R.loginExpire("登录失效!");
        }
        if (cityCode==null) {
            if (loginUser.getIsFranchisee()) {
                cityCode = loginUser.getCityList().get(0);
            } else {
                cityCode = "420100";
            }
        }
        Set<Integer> workIds  = redisService.getCacheSet("workerLocation:" + cityCode+":");
        if (workIds==null||workIds.isEmpty()){
            return R.ok(new ArrayList<>());
        }
        List<MasterWorker> list = masterWorkerService.lambdaQuery().in(MasterWorker::getId, workIds).list();
        for (MasterWorker masterWorker : list) {
            masterWorker.setLacation(redisService.getCacheObject("work:"+masterWorker.getId()+":"));
        }
        return R.ok(list);
    }
    @ApiOperation(value = "获师傅", tags = {"后台-订单管理-地图统计"})
    @PostMapping(value = "/map/line")
    public R<List<OrderByServeRecordVO>> line(Integer id) {
        R<List<Order>> workday = orderClient.workday(id);
        System.out.println(workday.getData());
        List<OrderByServeRecordVO> list = new ArrayList<>();
        for (Order datum : workday.getData()) {
            OrderByServeRecordVO orderByServeRecord = new OrderByServeRecordVO();
//            String masterFolderPath = "/usr/local/coordinate/" + datum.getServerId();
//            File masterFolder = new File(masterFolderPath);
            // 检查师傅ID的文件夹是否存在,存在就读取轨迹数据
//            System.out.println("文件是否存在:" + masterFolder.exists());
//            if (masterFolder.exists()) {
                // 检查订单ID的JSON文件是否存在,不存在则创建
//                String jsonFilePath = masterFolderPath + "/" + datum.getId() + ".json";
                String jsonFilePath = "C:\\Users\\Admin\\Desktop\\1814257493315514369.json";
                File jsonFile = new File(jsonFilePath);
                System.out.println("订单Json文件是否存在:" + jsonFile.exists());
                if (jsonFile.exists()) {
                    try {
                        String jsonContent = new String(Files.readAllBytes(Paths.get(jsonFilePath)));
                        System.out.println("JSON 文件内容:" + jsonContent);
                        List<com.alibaba.fastjson2.JSONObject> coordinate = com.alibaba.fastjson2.JSONObject.parseObject(jsonContent, List.class);
                        List<String> coordinateList = new ArrayList<>();
                        if (null != coordinate) {
                            for (com.alibaba.fastjson2.JSONObject jsonObject : coordinate) {
                                Object s = jsonObject.get("coordinate");
                                coordinateList.add(String.valueOf(s));
                            }
                            orderByServeRecord.setCoordinate(coordinateList);
                        }
                    } catch (IOException e) {
                        System.out.println(e.getMessage());
                    }
//                }
            }
            list.add(orderByServeRecord);
        }
        return R.ok(list);
    }
    @Resource
    private RegionService regionService;
    @ApiOperation(value = "获取城市名字", tags = {"后台-订单管理-地图统计"})
    @PostMapping(value = "/map/cityName")
    public R line(String cityCode) {
        Region one = regionService.lambdaQuery().eq(Region::getCode, cityCode).one();
        return R.ok(one.getName(),"");
    }
//    @ApiOperation(value = "获取司机的订单路线", tags = {"后台-订单管理-地图统计"})
//    @PostMapping(value = "/map/works/line")
//    public R<List<MasterWorker>> map(@RequestParam Integer workId) {
//
//
//        return R.ok(list);
//    }
}
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/MasterWorker.java
@@ -92,5 +92,7 @@
    @ApiModelProperty("对应城市code")
    @TableField("city_code")
    private String cityCode;
    @TableField(exist = false)
    private String lacation;
}
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/OrderServiceImpl.java
@@ -167,6 +167,9 @@
        }
        if (null != serveRecord) {
            orderByServeRecord.setPhoto(Arrays.stream(serveRecord.getPhoto().split(",")).collect(Collectors.toList()));
            orderByServeRecord.setCardPic(serveRecord.getCardPic());
            orderByServeRecord.setPaperPic(serveRecord.getPaperPic());
            orderByServeRecord.setMachinePic(serveRecord.getMachinePic());
        }
        result.setServeRecordInfo(orderByServeRecord);
    }
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByServeRecordVO.java
@@ -1,5 +1,6 @@
package com.ruoyi.admin.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -29,5 +30,15 @@
    @ApiModelProperty("现场照片集合")
    private List<String> photo;
    @ApiModelProperty("现场照片(多张照片 ','隔开)")
    @TableField("card_pic")
    private String cardPic;
    @ApiModelProperty("现场照片(多张照片 ','隔开)")
    @TableField("machine_pic")
    private String machinePic;
    @ApiModelProperty("现场照片(多张照片 ','隔开)")
    @TableField("paper_pic")
    private String paperPic;
}
ruoyi-service/ruoyi-order/pom.xml
@@ -173,6 +173,12 @@
            <artifactId>wechatpay-java</artifactId>
            <version>0.2.12</version>
        </dependency>
<!--        <dependency>-->
<!--            <groupId>com.ruoyi</groupId>-->
<!--            <artifactId>ruoyi-api-order</artifactId>-->
<!--            <version>3.6.4</version>-->
<!--            <scope>compile</scope>-->
<!--        </dependency>-->
    </dependencies>
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
@@ -1,15 +1,17 @@
package com.ruoyi.order.controller;
import cn.hutool.core.date.DateUtil;
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.AddressDto;
import com.ruoyi.common.core.vo.PaperInVo;
import com.ruoyi.common.core.vo.Path;
import com.ruoyi.order.entity.*;
import com.ruoyi.order.request.OrderCountDataRequest;
import com.ruoyi.order.request.OrderRequest;
@@ -105,6 +107,26 @@
        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();
    }
    @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);
    }
    /**
     * 更改订单状态且清空到达时间
@@ -310,6 +332,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));
    }
@@ -376,6 +400,8 @@
        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));
    }
@@ -450,6 +476,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);
    }
    /**
     * 用户所关联订单记录分页列表
     *
@@ -681,7 +734,14 @@
                .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);
    }
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/entity/Order.java
@@ -35,6 +35,12 @@
    @TableField("city")
    private String city;
    @TableField("province_code")
    private String provinceCode;
    @TableField("area_code")
    private String areaCode;
    @ApiModelProperty("订单编号")
    @TableField("order_number")
    private String orderNumber;
@@ -43,6 +49,11 @@
    @TableField("user_id")
    private Integer userId;
    @ApiModelProperty("下单用户id")
    @TableField("print_count")
    private Integer printCount;
    @ApiModelProperty("站点id")
    @TableField("site_id")
    private Integer siteId;
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.vo.PaperInVo;
import com.ruoyi.order.entity.Order;
import com.ruoyi.order.vo.*;
import org.apache.ibatis.annotations.Param;
@@ -190,4 +191,6 @@
     */
    List<OrderQueryVO> orderCountByTimeRangeMonth(@Param("cityList") List<String> cityList, @Param("startTime") String startTime,
                                                  @Param("endTime") String endTime, @Param("orderState") Integer orderState);
    List<PaperInVo> papercout(@Param("workId")String workId,@Param("date")String date);
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/request/OrderRequest.java
@@ -19,6 +19,8 @@
    @ApiModelProperty("下单城市")
    private String city;
    private String provinceCode;
    private String areaCode;
    @ApiModelProperty("城市编码")
    private String cityCode;
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/OrderService.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.vo.PaperInVo;
import com.ruoyi.common.core.vo.Path;
import com.ruoyi.order.entity.Order;
import com.ruoyi.order.request.UserOrderRequest;
@@ -131,4 +132,6 @@
     * @return 下单结果
     */
    String orderEstimate(UserOrderRequest userOrderRequest);
    List<PaperInVo> papercout(String workId,String date);
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -7,6 +7,7 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.GaoDeMapUtil;
import com.ruoyi.common.core.vo.AddressDto;
import com.ruoyi.common.core.vo.PaperInVo;
import com.ruoyi.common.core.vo.Path;
import com.ruoyi.order.entity.ChangeDispatch;
import com.ruoyi.order.entity.Order;
@@ -358,6 +359,11 @@
        return String.valueOf(order.getId());
    }
    @Override
    public List<PaperInVo> papercout(String workId,String date) {
        return this.baseMapper.papercout(workId,date);
    }
    /**
     * 根据当前月份获取当前季度的开始月份
     */
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -9,6 +9,7 @@
        <result column="order_money" property="orderMoney"/>
        <result column="site_name" property="siteName"/>
        <result column="serve_id" property="serveId"/>
        <result column="print_count" property="printCount"/>
        <result column="serve_name" property="serveName"/>
        <result column="serve_price" property="servePrice"/>
        <result column="reservation_name" property="reservationName"/>
@@ -497,4 +498,12 @@
        GROUP BY dateTime
        order by dateTime
    </select>
    <select id="papercout" resultType="com.ruoyi.common.core.vo.PaperInVo">
        select count(*) as count, serve_id as serveId from t_order
                                                      where is_delete = 0
                                                        and server_id = #{workId}
                                                        and `time` = #{date}
        group by serve_id
    </select>
</mapper>
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OrderController.java
@@ -5,9 +5,11 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.common.core.exception.GlobalException;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.GaoDeMapUtil;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.order.api.entity.ChangeDispatch;
import com.ruoyi.order.api.entity.Order;
@@ -34,10 +36,7 @@
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -63,6 +62,9 @@
    private ExchangeDispatchClient dispatchClient;
    @Resource
    private RecoveryServeService recoveryServeService;
    @Resource
    private RedisService redisService;
    /**
     * linux服务器保存订单轨迹文件夹
@@ -345,4 +347,23 @@
        return R.ok();
    }
    @ApiOperation(value = "上传经纬度", tags = {"师傅端-首页"})
    @GetMapping(value = "/putLocation")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "workId", name = "workId", dataType = "int", required = true),
            @ApiImplicitParam(value = "师傅所在经度", name = "longitude", dataType = "String", required = true),
            @ApiImplicitParam(value = "师傅所在纬度", name = "latitude", dataType = "String", required = true)
    })
    public R<Object> orderNavigation(@RequestParam Integer workId, @RequestParam String longitude,
                                     @RequestParam String latitude) {
        Result<String> address = GaoDeMapUtil.getCityCode(longitude, latitude);
        System.err.println(address.getDatas());
        Set<Integer> strings = new HashSet<>();
        strings.add(workId);
        redisService.setCacheSet("workerLocation:"+address.getDatas()+":", strings);
        redisService.setCacheObject("work:"+workId+":", longitude+","+latitude);
        return R.ok();
    }
}