This commit is contained in:
shuhongfan
2023-09-04 16:40:17 +08:00
commit cf5ac25c14
8267 changed files with 1305066 additions and 0 deletions

3
sl-express-ms-work-api/.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
.idea
target/
*.iml

View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.sl-express</groupId>
<artifactId>sl-express-parent</artifactId>
<version>1.4</version>
</parent>
<groupId>com.sl-express.ms.work</groupId>
<artifactId>sl-express-ms-work-api</artifactId>
<version>1.1-SNAPSHOT</version>
<description>工作任务相关微服务-Feign接口</description>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<sl-express-common.version>1.2-SNAPSHOT</sl-express-common.version>
<sl-express-work-domain.version>1.1-SNAPSHOT</sl-express-work-domain.version>
</properties>
<dependencies>
<dependency>
<groupId>com.sl-express.common</groupId>
<artifactId>sl-express-common</artifactId>
<version>${sl-express-common.version}</version>
</dependency>
<dependency>
<groupId>com.sl-express.ms.work</groupId>
<artifactId>sl-express-ms-work-domain</artifactId>
<version>${sl-express-work-domain.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,140 @@
package com.sl.ms.work.api;
import com.sl.ms.work.domain.dto.CourierTaskCountDTO;
import com.sl.ms.work.domain.dto.PickupDispatchTaskDTO;
import com.sl.ms.work.domain.dto.request.PickupDispatchTaskPageQueryDTO;
import com.sl.ms.work.domain.dto.response.PickupDispatchTaskStatisticsDTO;
import com.sl.ms.work.domain.enums.pickupDispatchtask.PickupDispatchTaskIsDeleted;
import com.sl.ms.work.domain.enums.pickupDispatchtask.PickupDispatchTaskStatus;
import com.sl.ms.work.domain.enums.pickupDispatchtask.PickupDispatchTaskType;
import com.sl.transport.common.util.PageResponse;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@FeignClient(value = "sl-express-ms-work", contextId = "pickup-dispatch", path = "pickup-dispatch-task")
public interface PickupDispatchTaskFeign {
/**
* 更新取派件状态,不允许 NEW 状态
*
* @param pickupDispatchTaskDTO 修改的数据
* @return 是否成功
*/
@PutMapping
Boolean updateStatus(@RequestBody PickupDispatchTaskDTO pickupDispatchTaskDTO);
/**
* 改派快递员
*
* @param ids 任务id列表
* @param originalCourierId 原快递员id
* @param targetCourierId 目标快递员id
* @return 是否成功
*/
@PutMapping("courier")
Boolean updateCourierId(@RequestParam("ids") List<Long> ids,
@RequestParam("originalCourierId") Long originalCourierId,
@RequestParam("targetCourierId") Long targetCourierId);
/**
* 获取取派件任务分页数据
*
* @param dto 查询条件
* @return 取派件分页数据
*/
@PostMapping("page")
PageResponse<PickupDispatchTaskDTO> findByPage(@RequestBody PickupDispatchTaskPageQueryDTO dto);
/**
* 根据id获取取派件任务信息
*
* @param id 任务id
* @return 取派件任务信息
*/
@GetMapping("{id}")
PickupDispatchTaskDTO findById(@PathVariable("id") Long id);
/**
* 根据id批量查询取派件任务信息
*
* @param ids 任务id列表
* @return 任务列表
*/
@GetMapping("ids")
List<PickupDispatchTaskDTO> findByIds(@RequestParam("ids") List<Long> ids);
/**
* 根据id批量删除取派件任务信息逻辑删除
*
* @param ids 任务id列表
* @return 是否成功
*/
@DeleteMapping("ids")
boolean deleteByIds(@RequestParam("ids") List<Long> ids);
/**
* 根据订单id查询取派件任务
*
* @param orderId 订单id
* @param taskType 任务类型
* @return 任务
*/
@GetMapping("/orderId/{orderId}/{taskType}")
List<PickupDispatchTaskDTO> findByOrderId(@PathVariable("orderId") Long orderId,
@PathVariable("taskType") PickupDispatchTaskType taskType);
/**
* 按照当日快递员id列表查询每个快递员的取派件任务数
*
* @param courierIds 订单id列表
* @param taskType 任务类型
* @param date 日期格式yyyy-MM-dd 或 yyyyMMdd
* @return 任务列表
*/
@GetMapping("count")
List<CourierTaskCountDTO> findCountByCourierIds(@RequestParam("courierIds") List<Long> courierIds,
@RequestParam("taskType") PickupDispatchTaskType taskType,
@RequestParam("date") String date);
/**
* 今日任务分类计数
*
* @param courierId 快递员id
* @param taskType 任务类型1为取件任务2为派件任务
* @param status 任务状态,1新任务2已完成3已取消
* @param isDeleted 是否逻辑删除
* @return 任务数量
*/
@GetMapping("todayTasks/count")
Integer todayTasksCount(@RequestParam("courierId") Long courierId,
@RequestParam(value = "taskType", required = false) PickupDispatchTaskType taskType,
@RequestParam(value = "status", required = false) PickupDispatchTaskStatus status,
@RequestParam(value = "isDeleted", required = false) PickupDispatchTaskIsDeleted isDeleted);
/**
* 条件查询所有
*
* @param courierId 快递员id
* @param taskType 任务类型1为取件任务2为派件任务
* @param taskStatus 任务状态,1新任务2已完成3已取消
* @param isDeleted 是否逻辑删除
* @return 取派件任务列表
*/
@GetMapping("/all")
List<PickupDispatchTaskDTO> findAll(@RequestParam(name = "courierId", required = false) Long courierId,
@RequestParam(name = "taskType", required = false) PickupDispatchTaskType taskType,
@RequestParam(name = "taskStatus", required = false) PickupDispatchTaskStatus taskStatus,
@RequestParam(name = "isDeleted", required = false) PickupDispatchTaskIsDeleted isDeleted);
/**
* 今日任务分类统计
*
* @param courierId 快递员id
* @return 统计结果
*/
@GetMapping("/todayTasksStatistics")
PickupDispatchTaskStatisticsDTO todayTasksStatistics(@RequestParam(value = "courierId", required = false) Long courierId);
}

View File

@@ -0,0 +1,136 @@
package com.sl.ms.work.api;
import com.sl.ms.work.domain.dto.TransportOrderDTO;
import com.sl.ms.work.domain.dto.request.TransportOrderQueryDTO;
import com.sl.ms.work.domain.dto.response.OrderToTransportOrderDTO;
import com.sl.ms.work.domain.dto.response.TransportOrderStatusCountDTO;
import com.sl.ms.work.domain.enums.transportorder.TransportOrderStatus;
import com.sl.transport.common.util.PageResponse;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 运单相关Api
*
* @author jpfss
*/
@FeignClient(name = "sl-express-ms-work", contextId = "TransportOrder", path = "transport-order")
public interface TransportOrderFeign {
/**
* 新增运单(订单转运单)
*
* @param orderId 订单id
* @return 运单信息
*/
@PostMapping
OrderToTransportOrderDTO orderToTransportOrder(@RequestParam("orderId") Long orderId);
/**
* 更新状态,不允许 CREATED 状态
*
* @param id 运单id
* @param status 订单状态
* @return 是否成功
*/
@PutMapping
Boolean updateStatus(@RequestParam("id") String id,
@RequestParam("status") TransportOrderStatus status);
/**
* 获取运单分页数据
* @return 运单分页数据
*/
@PostMapping("page")
PageResponse<TransportOrderDTO> findByPage(@RequestBody TransportOrderQueryDTO transportOrderQueryDTO);
/**
* 根据id获取运单信息
*
* @param id 运单id
* @return 运单信息
*/
@GetMapping("/{id}")
TransportOrderDTO findById(@PathVariable("id") String id);
/**
* 根据id获取运单信息
*
* @param id 运单id
* @return 运单信息
*/
@GetMapping("/batch")
List<TransportOrderDTO> findByIds(@RequestParam("ids") String[] id);
/**
* 根据订单id获取运单信息
*
* @param orderId 订单id
* @return 运单信息
*/
@GetMapping("/orderId/{orderId}")
TransportOrderDTO findByOrderId(@PathVariable("orderId") Long orderId);
/**
* 根据多个订单id查询运单信息
*
* @param orderIds 订单id列表
* @return 运单列表
*/
@PostMapping("list")
List<TransportOrderDTO> findByOrderIds(@RequestParam(name = "orderIds") Long... orderIds);
/**
* 根据运单号搜索运单
*
* @param id 运单号
* @return 运单列表
*/
@GetMapping("search")
List<TransportOrderDTO> searchById(@RequestParam("id") String id);
/**
* 统计各个状态的数量
*
* @return 状态数量数据
*/
@GetMapping("count")
List<TransportOrderStatusCountDTO> findStatusCount();
/**
* 根据运输任务id修改运单
*
* @param taskId 运输任务id
* @return 是否成功
*/
@PutMapping("updateByTaskId/{taskId}")
boolean updateByTaskId(@PathVariable("taskId") String taskId);
/**
* 批量更新状态
*
* @param ids 运单id列表
* @param status 订单状态
* @return 是否成功
*/
@PutMapping("batchUpdate")
Boolean updateStatus(@RequestParam("ids") List<String> ids,
@RequestParam("status") TransportOrderStatus status);
/**
* 根据运输任务id分页查询运单信息
*
* @param page 页码
* @param pageSize 页面大小
* @param taskId 运输任务id
* @param transportOrderId 运单id
* @return 运单对象分页数据
*/
@GetMapping("pageQueryByTaskId")
PageResponse<TransportOrderDTO> pageQueryByTaskId(@RequestParam(name = "page", defaultValue = "1") Integer page,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
@RequestParam(name = "taskId") String taskId,
@RequestParam(name = "transportOrderId", required = false) String transportOrderId);
}

View File

@@ -0,0 +1,145 @@
package com.sl.ms.work.api;
import com.sl.ms.work.domain.dto.TaskTransportUpdateDTO;
import com.sl.ms.work.domain.dto.TransportTaskDTO;
import com.sl.ms.work.domain.dto.request.TransportTaskCompleteDTO;
import com.sl.ms.work.domain.dto.request.TransportTaskDelayDeliveryDTO;
import com.sl.ms.work.domain.dto.request.TransportTaskPageQueryDTO;
import com.sl.ms.work.domain.dto.request.TransportTaskStartDTO;
import com.sl.ms.work.domain.dto.response.TransportTaskMonthlyDistanceDTO;
import com.sl.ms.work.domain.dto.response.TransportTaskStatusCountDTO;
import com.sl.ms.work.domain.enums.transporttask.TransportTaskStatus;
import com.sl.transport.common.util.PageResponse;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@FeignClient(name = "sl-express-ms-work", contextId = "TransportTask", path = "transport-task")
public interface TransportTaskFeign {
/**
* 更新状态
*
* @param id 运输任务id
* @param status 任务状态 PROCESSING开始任务COMPLETED完成任务
* @return 是否成功
*/
@PutMapping
Boolean updateStatus(@RequestParam("id") Long id,
@RequestParam("status") TransportTaskStatus status);
/**
* 获取运输任务分页数据
*
* @param pageQueryDTO 分页查询条件
* @return 运输任务分页数据
*/
@PostMapping("page")
PageResponse<TransportTaskDTO> findByPage(@RequestBody TransportTaskPageQueryDTO pageQueryDTO);
/**
* 根据id获取运输任务信息
*
* @param id 运输任务id
* @return 运输任务信息
*/
@GetMapping("{id}")
TransportTaskDTO findById(@PathVariable("id") Long id);
/**
* 根据运单id或运输任务id获取运输任务列表
*
* @param transportOrderId 运单id
* @param taskTransportId 运输任务id
* @return 运输任务列表
*/
@GetMapping("listByOrderIdOrTaskId")
List<TransportTaskDTO> findAllByOrderIdOrTaskId(@RequestParam(name = "transportOrderId", required = false) String transportOrderId,
@RequestParam(name = "taskTransportId", required = false) Long taskTransportId);
/**
* 统计各个状态的数量
*
* @return 状态数量数据
*/
@GetMapping("count")
List<TransportTaskStatusCountDTO> count();
/**
* 手动调整
*
* @param id 运输任务id
* @param dto 运输任务
* @return 运输任务
*/
@PutMapping("adjust/{id}")
TransportTaskDTO adjust(@PathVariable(name = "id") Long id, @RequestBody TaskTransportUpdateDTO dto);
/**
* 开始运输任务
*
* @param transportTaskStartDTO 提货对象
*/
@PutMapping("startTransportTask")
void startTransportTask(@RequestBody TransportTaskStartDTO transportTaskStartDTO);
/**
* 完成运输任务
*
* @param transportTaskCompleteDTO 交付对象
*/
@PutMapping("completeTransportTask")
@ApiOperation(value = "完成运输任务")
void completeTransportTask(@RequestBody TransportTaskCompleteDTO transportTaskCompleteDTO);
/**
* 根据运输任务id查询运单id列表
*
* @param id 运输任务id
* @return 运单id列表
*/
@GetMapping("queryTransportOrderIdListById/{id}")
List<String> queryTransportOrderIdListById(@PathVariable("id") Long id);
/**
* 延迟提货,延迟时间以提货时间往后推最多不超过2小时
*
* @param transportTaskDelayDeliveryDTO 运输任务延时对象
*/
@PutMapping("delayDelivery")
void delayedDelivery(@RequestBody TransportTaskDelayDeliveryDTO transportTaskDelayDeliveryDTO);
/**
* 月度任务里程统计
*
* @param transportTaskIds 运输任务id列表
* @param month 月份格式2022-06
* @return 每日里程数据
*/
@GetMapping("monthlyDistanceStatistics")
List<TransportTaskMonthlyDistanceDTO> monthlyDistanceStatistics(@RequestParam(name = "transportTaskIds") List<String> transportTaskIds,
@RequestParam(name = "month") String month);
/**
* 根据起始机构查询运输任务id列表
*
* @param startAgencyId 起始机构id
* @param endAgencyId 结束机构id
* @return 运输任务id列表
*/
@GetMapping("findByAgencyId")
List<Long> findByAgencyId(@RequestParam(name = "startAgencyId", required = false) Long startAgencyId,
@RequestParam(name = "endAgencyId", required = false) Long endAgencyId);
/**
* 根据车辆ID统计
*
* @param truckId 车辆ID
* @return 个数
*/
@GetMapping("countByTruckId")
Long countByTruckId(@RequestParam(name = "truckId", required = false) Long truckId);
}