From ecca9ab70a9a87bcb60977c92fbf81053b8fc1bb Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期三, 04 九月 2024 09:17:55 +0800 Subject: [PATCH] 新增优化 --- ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/entity/OrderQueryRequest.java | 8 ruoyi-service/ruoyi-admin/src/main/resources/template/订单记录.xlsx | 0 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java | 156 ++++++++++++------- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/entity/Order.java | 4 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByServeRecordVO.java | 3 ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OrderController.java | 119 ++++++++++++-- ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/OrderService.java | 9 + ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java | 46 ++++- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/OrderService.java | 5 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 27 ++ ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/OrderServiceImpl.java | 15 + ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderQueryRequest.java | 5 ruoyi-gateway/src/main/java/com/ruoyi/gateway/service/impl/ValidateCodeServiceImpl.java | 11 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml | 6 ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/MasterWorkerController.java | 17 + ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/vo/ServeCoordinate.java | 4 16 files changed, 326 insertions(+), 109 deletions(-) diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/entity/OrderQueryRequest.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/entity/OrderQueryRequest.java index 4b20406..e40ea28 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/entity/OrderQueryRequest.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/entity/OrderQueryRequest.java @@ -2,9 +2,8 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - import java.util.List; +import lombok.Data; /** * @author HJL @@ -75,4 +74,9 @@ @ApiModelProperty("服务ids") private List<Integer> servIds ; + @ApiModelProperty("订单完成开始时间") + private String completeTimeStart; + + @ApiModelProperty("订单完成结束时间") + private String completeTimeEnd; } diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/service/impl/ValidateCodeServiceImpl.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/service/impl/ValidateCodeServiceImpl.java index 9da9bcf..9633514 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/service/impl/ValidateCodeServiceImpl.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/service/impl/ValidateCodeServiceImpl.java @@ -11,15 +11,14 @@ import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.gateway.config.properties.CaptchaProperties; import com.ruoyi.gateway.service.ValidateCodeService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.util.FastByteArrayOutputStream; - -import javax.annotation.Resource; -import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.concurrent.TimeUnit; +import javax.annotation.Resource; +import javax.imageio.ImageIO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.FastByteArrayOutputStream; /** * 验证码实现处理 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 40552ab..5752cdb 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,13 +3,22 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.ruoyi.admin.entity.*; +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.netty.NettyChannelMap; import com.ruoyi.admin.netty.NettyWebSocketController; -import com.ruoyi.admin.service.*; -import com.ruoyi.admin.utils.AddressDto; +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.utils.DescribeInstances; -import com.ruoyi.admin.utils.OcrBase; import com.ruoyi.admin.vo.OrderByServeRecordVO; import com.ruoyi.admin.vo.OrderDetailVO; import com.ruoyi.admin.vo.OrderReasinDto; @@ -17,47 +26,51 @@ 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; +import com.ruoyi.common.core.utils.DateUtils; 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; -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.entity.OrderCountVO; +import com.ruoyi.order.api.entity.OrderPageCountVO; +import com.ruoyi.order.api.entity.OrderQueryRequest; +import com.ruoyi.order.api.entity.OrderRequest; 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.*; - -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.time.LocalDateTime; -import java.util.*; +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.stream.Collectors; -import java.util.stream.Stream; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +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> @@ -179,7 +192,16 @@ } return R.ok(data); } - + /** + * 订单id列表 + * + * @param orderQueryRequest 订单列表查询参数 + */ + @ApiOperation(value = "订单id列表-分页", tags = {"后台-订单管理"}) + @PostMapping(value = "/queryIdList") + public R<List<String>> queryIdList(@RequestBody OrderQueryRequest orderQueryRequest) { + return R.ok(orderService.queryIdList(orderQueryRequest)); + } /** * 订单列表 */ @@ -340,7 +362,6 @@ /** * 订单派单/改派 * - * @param type 1:订单派单;2:订单改派 */ @RequiresPermissions("order_reassignment") @ApiOperation(value = "订单列表-订单派单/改派", tags = {"后台-订单管理"}) @@ -579,52 +600,69 @@ @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 today = DateUtils.dateTimeNow("yyyy-MM-dd"); + OrderByServeRecordVO orderByServeRecord = new OrderByServeRecordVO(); - String masterFolderPath = "/usr/local/coordinate/" + datum.getServerId(); - File masterFolder = new File(masterFolderPath); + String masterFolderPath = "/usr/local/coordinate/" + id; + File masterFolder = new File(masterFolderPath); // 检查师傅ID的文件夹是否存在,存在就读取轨迹数据 - System.out.println("文件是否存在:" + masterFolder.exists()); - if (masterFolder.exists()) { + System.out.println("文件是否存在:" + masterFolder.exists()); + if (masterFolder.exists()) { // 检查订单ID的JSON文件是否存在,不存在则创建 - String jsonFilePath = masterFolderPath + "/" + datum.getId() + ".json"; + String jsonFilePath = masterFolderPath + "/" + today + ".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); - - } + File jsonFile = new File(jsonFilePath); + System.out.println("订单Json文件是否存在:" + jsonFile.exists()); + List<String> coordinateList = getCoordinateList(jsonFile, jsonFilePath); + orderByServeRecord.setCoordinate(coordinateList); + //获取轨迹标点 + String baseMarkerPath = "/usr/local/marker/" + id; + //标点根目录 + File markerMasterFolder = new File(baseMarkerPath); + if (markerMasterFolder.exists()) { + // 标点json文件路径 + String markerJsonFilePath = markerMasterFolder + "/" + today + ".json"; + File markerJsonFile = new File(markerJsonFilePath); + List<String> markerCoordinateList = getCoordinateList(markerJsonFile, + markerJsonFilePath); + orderByServeRecord.setMarker(markerCoordinateList); } - - + list.add(orderByServeRecord); } - - - - return R.ok(list); } + /** + * 获取坐标集合 + * @param jsonFile json文件 + * @param jsonFilePath 文件路径 + * @return + */ + private static List<String> getCoordinateList(File jsonFile, String jsonFilePath) { + 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"); + if (s != null) { + coordinateList.add(s.toString()); + } + } + } + return coordinateList; + } catch (IOException e) { + System.out.println(e.getMessage()); + } + } + return Collections.emptyList(); + } + @Resource private RegionService regionService; diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/OrderService.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/OrderService.java index ce42946..c9e9c2c 100644 --- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/OrderService.java +++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/OrderService.java @@ -5,6 +5,7 @@ import com.ruoyi.admin.vo.OrderDetailVO; import com.ruoyi.common.core.domain.R; +import com.ruoyi.order.api.entity.OrderQueryRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; @@ -34,5 +35,11 @@ * @return 订单信息 */ OrderDetailVO orderListDetail(String id); - + /** + * 订单id列表 + * + * @param orderQueryRequest 订单列表查询参数 + * @return 订单id列表 + */ + List<String> queryIdList(OrderQueryRequest orderQueryRequest); } diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/OrderServiceImpl.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/OrderServiceImpl.java index 11b6fe3..cd54160 100644 --- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/OrderServiceImpl.java +++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/OrderServiceImpl.java @@ -5,6 +5,7 @@ import com.alibaba.excel.write.builder.ExcelWriterBuilder; import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.admin.entity.*; import com.ruoyi.admin.mapper.OrderMapper; @@ -16,6 +17,7 @@ import com.ruoyi.admin.vo.*; import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.domain.R; +import com.ruoyi.order.api.entity.OrderQueryRequest; import com.ruoyi.order.api.entity.ServeRecord; import com.ruoyi.order.api.feignClient.EvaluateClient; import com.ruoyi.order.api.feignClient.OrderClient; @@ -238,5 +240,16 @@ orderByUserInfo.setTime(order.getTime()); result.setUserInfo(orderByUserInfo); } - + /** + * 订单id列表 + * + * @param orderQueryRequest 订单列表查询参数 + * @return 订单id列表 + */ + @Override + public List<String> queryIdList(OrderQueryRequest orderQueryRequest) { + // 基础查询 + Page<com.ruoyi.order.api.entity.Order> pageList = orderClient.queryPage(orderQueryRequest).getData(); + return pageList.getRecords().stream().map(com.ruoyi.order.api.entity.Order::getId).collect(Collectors.toList()); + } } diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByServeRecordVO.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByServeRecordVO.java index bae24cc..b195cc5 100644 --- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByServeRecordVO.java +++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByServeRecordVO.java @@ -28,6 +28,9 @@ @ApiModelProperty("路线经纬度集合") private List<String> coordinate; + @ApiModelProperty("路线标点经纬度集合") + private List<String> marker; + @ApiModelProperty("现场照片集合") private List<String> photo; @ApiModelProperty("现场照片(多张照片 ','隔开)") diff --git "a/ruoyi-service/ruoyi-admin/src/main/resources/template/\350\256\242\345\215\225\350\256\260\345\275\225.xlsx" "b/ruoyi-service/ruoyi-admin/src/main/resources/template/\350\256\242\345\215\225\350\256\260\345\275\225.xlsx" index 88b57f0..224b50a 100644 --- "a/ruoyi-service/ruoyi-admin/src/main/resources/template/\350\256\242\345\215\225\350\256\260\345\275\225.xlsx" +++ "b/ruoyi-service/ruoyi-admin/src/main/resources/template/\350\256\242\345\215\225\350\256\260\345\275\225.xlsx" Binary files differ 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 bbb2faf..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,6 +1,5 @@ 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.extension.conditions.query.LambdaQueryChainWrapper; @@ -11,23 +10,34 @@ 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; @@ -36,6 +46,14 @@ 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> @@ -118,6 +136,16 @@ 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) { diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/entity/Order.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/entity/Order.java index a0bdba3..2918b8e 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/entity/Order.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/entity/Order.java @@ -186,6 +186,8 @@ @TableField("fake") private Integer fake; - + @ApiModelProperty("短信发送次数") + @TableField("msg_count") + private Integer msgCount; } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/OrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/OrderService.java index 551f8db..4c0fc0f 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/OrderService.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/OrderService.java @@ -134,4 +134,9 @@ String orderEstimate(UserOrderRequest userOrderRequest); List<PaperInVo> papercout(String workId,String date); + /** + * 增加发送短信次数 + * @param orderId 订单id + */ + void messageCount(String orderId); } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java index 5cda282..b609db7 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java @@ -15,12 +15,16 @@ import com.ruoyi.order.request.UserOrderRequest; import com.ruoyi.order.service.ChangeDispatchService; import com.ruoyi.order.service.OrderService; -import com.ruoyi.order.vo.*; +import com.ruoyi.order.vo.MoneyQueryRequest; +import com.ruoyi.order.vo.OrderCountRequest; +import com.ruoyi.order.vo.OrderCountVO; +import com.ruoyi.order.vo.OrderPageCountVO; +import com.ruoyi.order.vo.OrderQueryRequest; +import com.ruoyi.order.vo.OrderQueryVO; +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 org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import javax.annotation.Resource; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -32,6 +36,9 @@ import java.util.Date; import java.util.List; import java.util.Objects; +import javax.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; /** * <p> @@ -378,4 +385,14 @@ return Month.OCTOBER; } } + /** + * 增加发送短信次数 + * @param orderId 订单id + */ + @Override + public void messageCount(String orderId) { + Order byId = this.getById(orderId); + byId.setMsgCount(byId.getMsgCount()==null?1:byId.getMsgCount()+1); + this.updateById(byId); + } } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderQueryRequest.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderQueryRequest.java index c4bd1f8..0ab8ee0 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderQueryRequest.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderQueryRequest.java @@ -70,5 +70,10 @@ @ApiModelProperty(value = "订单类型0:正常订单,1:后台订单") private Integer type ; + @ApiModelProperty("订单完成开始时间") + private String completeTimeStart; + + @ApiModelProperty("订单完成结束时间") + private String completeTimeEnd; } diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml index 909cbe9..4ff4bcb 100644 --- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml +++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml @@ -261,6 +261,12 @@ <if test="data.endTime != null and data.endTime != ''"> AND STR_TO_DATE(SUBSTRING_INDEX(time, ' - ', -1), '%Y-%m-%d %H:%i') <![CDATA[ <= ]]> #{data.endTime} </if> + <if test="data.completeTimeStart != null and data.completeTimeStart != ''"> + and DATE(o.complete_time) <![CDATA[ >= ]]> #{data.completeTimeStart} + </if> + <if test="data.completeTimeEnd != null and data.completeTimeEnd != ''"> + and DATE(o.complete_time) <![CDATA[ <= ]]> #{data.completeTimeEnd} + </if> </where> order by o.createTime desc </select> diff --git a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/MasterWorkerController.java b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/MasterWorkerController.java index 2197757..70ea2da 100644 --- a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/MasterWorkerController.java +++ b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/MasterWorkerController.java @@ -2,7 +2,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.admin.api.entity.Agreement; import com.ruoyi.admin.api.feignClient.AdminClient; import com.ruoyi.common.core.constant.Constants; @@ -29,16 +28,20 @@ import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.regex.Pattern; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.validation.annotation.Validated; +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> diff --git a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OrderController.java b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OrderController.java index 214785d..688ba80 100644 --- a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OrderController.java +++ b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OrderController.java @@ -20,24 +20,33 @@ import com.ruoyi.system.api.model.LoginUserInfo; import com.ruoyi.worker.entity.MasterWorker; import com.ruoyi.worker.entity.RecoveryServe; -import com.ruoyi.worker.vo.ServeCoordinate; import com.ruoyi.worker.service.MasterWorkerService; import com.ruoyi.worker.service.RecoveryServeService; +import com.ruoyi.worker.vo.ServeCoordinate; 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.io.File; import java.io.FileWriter; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; -import java.util.*; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; 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> @@ -69,9 +78,11 @@ /** * linux服务器保存订单轨迹文件夹 */ - private static final String BASE_PATH = "/usr/local/coordinate/"; + // private static final String BASE_PATH = "/usr/local/coordinate/"; + private static final String BASE_PATH = "F:/DeskTop/coordinate/"; + // private static final String BASE_MARKER_PATH = "/usr/local/marker/"; // private static final String BASE_PATH = "D:/Desktop/coordinate/"; - + private static final String BASE_MARKER_PATH = "F:/DeskTop/marker/"; /** * 师傅端-获取订单列表 * @@ -274,27 +285,26 @@ /** * 师傅端-定时调度记录师傅所走路线经纬度 * - * @param orderId 订单id * @param longitude 经度 * @param latitude 纬度 */ - @ApiOperation(value = "订单进行-记录路线经纬度", tags = {"师傅端-订单列表"}) + @ApiOperation(value = "订单进行-记录全天路线经纬度", tags = {"师傅端-订单列表"}) @GetMapping(value = "/coordinate") @ApiImplicitParams({ - @ApiImplicitParam(value = "订单id", name = "orderId", dataType = "String", required = true), @ApiImplicitParam(value = "经度", name = "longitude", dataType = "Integer", required = true), @ApiImplicitParam(value = "纬度", name = "latitude", dataType = "Integer", required = true) }) - public R<Boolean> coordinate(@RequestParam String orderId, @RequestParam Double longitude, - @RequestParam Double latitude) { + public R<Boolean> coordinate(@RequestParam Double longitude, @RequestParam Double latitude) { LoginUserInfo loginWorker = tokenService.getLoginUserByWorker(); if (null == loginWorker) { return R.loginExpire("登录失效!"); } + // 获取当天时间 + String today = DateUtils.dateTimeNow("yyyy-MM-dd"); Integer workerId = loginWorker.getUserid(); ServeCoordinate serveCoordinate = new ServeCoordinate(); serveCoordinate.setWorkerId(workerId); - serveCoordinate.setOrderId(orderId); + serveCoordinate.setDate(today); serveCoordinate.setCoordinate(longitude + "," + latitude); serveCoordinate.setLongitude(longitude); serveCoordinate.setLatitude(latitude); @@ -308,8 +318,9 @@ // 创建师傅ID的文件夹 masterFolder.mkdirs(); } + // 检查订单ID的JSON文件是否存在,不存在则创建 - String jsonFilePath = masterFolderPath + "/" + orderId + ".json"; + String jsonFilePath = masterFolderPath + "/" + today + ".json"; File jsonFile = new File(jsonFilePath); if (!jsonFile.exists()) { try { @@ -331,7 +342,83 @@ // 订单轨迹信息 ServeCoordinate data = new ServeCoordinate(); data.setWorkerId(workerId); - data.setOrderId(orderId); + data.setDate(today); + data.setCoordinate(longitude + "," + latitude); + data.setLongitude(longitude); + data.setLatitude(latitude); + coordinate.add(data); + String itemStr = JSONObject.toJSONString(coordinate); + FileWriter writer = new FileWriter(jsonFile); + writer.write(itemStr); + writer.close(); + } catch (IOException e) { + return R.fail(e.getMessage()); + } + } + return R.ok(); + } + /** + * 师傅端-定时调度记录师傅当天的轨迹标点 + * + * @param longitude 经度 + * @param latitude 纬度 + */ + @ApiOperation(value = "订单进行-记录当天的轨迹标点", tags = {"师傅端-订单列表"}) + @GetMapping(value = "/marker") + @ApiImplicitParams({ + @ApiImplicitParam(value = "经度", name = "longitude", dataType = "Integer", required = true), + @ApiImplicitParam(value = "纬度", name = "latitude", dataType = "Integer", required = true) + }) + public R<Boolean> marker(@RequestParam Double longitude, @RequestParam Double latitude) { + LoginUserInfo loginWorker = tokenService.getLoginUserByWorker(); + if (null == loginWorker) { + return R.loginExpire("登录失效!"); + } + // 获取当天时间 + String today = DateUtils.dateTimeNow("yyyy-MM-dd"); + Integer workerId = 1; + // Integer workerId = loginWorker.getUserid(); + ServeCoordinate serveCoordinate = new ServeCoordinate(); + serveCoordinate.setWorkerId(workerId); + serveCoordinate.setDate(today); + serveCoordinate.setCoordinate(longitude + "," + latitude); + serveCoordinate.setLongitude(longitude); + serveCoordinate.setLatitude(latitude); + List<ServeCoordinate> list = new ArrayList<>(); + list.add(serveCoordinate); + String jsonString = JSONObject.toJSONString(list); + // 检查师傅ID的文件夹是否存在,不存在则创建 + String masterFolderPath = BASE_MARKER_PATH + workerId; + File masterFolder = new File(masterFolderPath); + if (!masterFolder.exists()) { + // 创建师傅ID的文件夹 + masterFolder.mkdirs(); + } + + // 检查今天的JSON文件是否存在,不存在则创建 + String jsonFilePath = masterFolderPath + "/" + today + ".json"; + File jsonFile = new File(jsonFilePath); + if (!jsonFile.exists()) { + try { + // 创建今天的JSON文件 + jsonFile.createNewFile(); + // 首次记录标点 + FileWriter writer = new FileWriter(jsonFile); + writer.write(jsonString); + writer.close(); + } catch (IOException e) { + return R.fail(e.getMessage()); + } + } else { + // 读取订单ID的JSON文件内容 + try { + String jsonContent = new String(Files.readAllBytes(Paths.get(jsonFilePath))); + System.out.println("JSON 文件内容:" + jsonContent); + List<ServeCoordinate> coordinate = JSONObject.parseObject(jsonContent, List.class); + // 订单轨迹信息 + ServeCoordinate data = new ServeCoordinate(); + data.setWorkerId(workerId); + data.setDate(today); data.setCoordinate(longitude + "," + latitude); data.setLongitude(longitude); data.setLatitude(latitude); diff --git a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/vo/ServeCoordinate.java b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/vo/ServeCoordinate.java index e25055d..9128f87 100644 --- a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/vo/ServeCoordinate.java +++ b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/vo/ServeCoordinate.java @@ -21,8 +21,8 @@ @ApiModelProperty("师傅id") private Integer workerId; - @ApiModelProperty("订单id") - private String orderId; + @ApiModelProperty("日期") + private String date; @ApiModelProperty("路线经纬度") private String coordinate; -- Gitblit v1.7.1