Commit 8dcc2a6efa6ac8745cc5922798d056b3aad98438
1 parent
df3394c5
Add JAXB dependencies, update transport order logic, refine CourierMQ listener, …
…and adjust CORS configuration
Showing
6 changed files
with
53 additions
and
9 deletions
sl-express-gateway/src/main/resources/bootstrap-local.yml
| @@ -19,9 +19,7 @@ spring: | @@ -19,9 +19,7 @@ spring: | ||
| 19 | globalcors: | 19 | globalcors: |
| 20 | cors-configurations: | 20 | cors-configurations: |
| 21 | '[/**]': | 21 | '[/**]': |
| 22 | - allowed-origins: | ||
| 23 | - - "http://127.0.0.1:5173" | ||
| 24 | - - "http://localhost:5173" | 22 | + allowed-origin-patterns: "*" |
| 25 | allowed-headers: "*" | 23 | allowed-headers: "*" |
| 26 | allow-credentials: true | 24 | allow-credentials: true |
| 27 | allowed-methods: | 25 | allowed-methods: |
sl-express-ms-web-driver/pom.xml
| @@ -28,6 +28,26 @@ | @@ -28,6 +28,26 @@ | ||
| 28 | 28 | ||
| 29 | <dependencies> | 29 | <dependencies> |
| 30 | <dependency> | 30 | <dependency> |
| 31 | + <groupId>javax.xml.bind</groupId> | ||
| 32 | + <artifactId>jaxb-api</artifactId> | ||
| 33 | + <version>2.2.11</version> | ||
| 34 | + </dependency> | ||
| 35 | + <dependency> | ||
| 36 | + <groupId>com.sun.xml.bind</groupId> | ||
| 37 | + <artifactId>jaxb-core</artifactId> | ||
| 38 | + <version>2.2.11</version> | ||
| 39 | + </dependency> | ||
| 40 | + <dependency> | ||
| 41 | + <groupId>com.sun.xml.bind</groupId> | ||
| 42 | + <artifactId>jaxb-impl</artifactId> | ||
| 43 | + <version>2.2.11</version> | ||
| 44 | + </dependency> | ||
| 45 | + <dependency> | ||
| 46 | + <groupId>javax.activation</groupId> | ||
| 47 | + <artifactId>activation</artifactId> | ||
| 48 | + <version>1.1.1</version> | ||
| 49 | + </dependency> | ||
| 50 | + <dependency> | ||
| 31 | <groupId>com.sl-express.common</groupId> | 51 | <groupId>com.sl-express.common</groupId> |
| 32 | <artifactId>sl-express-common</artifactId> | 52 | <artifactId>sl-express-common</artifactId> |
| 33 | <version>${sl-express-common.version}</version> | 53 | <version>${sl-express-common.version}</version> |
sl-express-ms-work-service/src/main/java/com/sl/ms/work/mq/CourierMQListener.java
| 1 | package com.sl.ms.work.mq; | 1 | package com.sl.ms.work.mq; |
| 2 | 2 | ||
| 3 | +import cn.hutool.core.date.DateUtil; | ||
| 3 | import cn.hutool.core.date.LocalDateTimeUtil; | 4 | import cn.hutool.core.date.LocalDateTimeUtil; |
| 4 | import cn.hutool.core.util.StrUtil; | 5 | import cn.hutool.core.util.StrUtil; |
| 5 | import cn.hutool.json.JSONUtil; | 6 | import cn.hutool.json.JSONUtil; |
| 7 | +import com.sl.ms.base.api.common.MQFeign; | ||
| 6 | import com.sl.ms.oms.api.OrderFeign; | 8 | import com.sl.ms.oms.api.OrderFeign; |
| 7 | import com.sl.ms.oms.dto.OrderDTO; | 9 | import com.sl.ms.oms.dto.OrderDTO; |
| 8 | import com.sl.ms.oms.enums.OrderStatus; | 10 | import com.sl.ms.oms.enums.OrderStatus; |
| @@ -11,6 +13,7 @@ import com.sl.ms.work.domain.enums.pickupDispatchtask.PickupDispatchTaskSignStat | @@ -11,6 +13,7 @@ import com.sl.ms.work.domain.enums.pickupDispatchtask.PickupDispatchTaskSignStat | ||
| 11 | import com.sl.ms.work.domain.enums.pickupDispatchtask.PickupDispatchTaskStatus; | 13 | import com.sl.ms.work.domain.enums.pickupDispatchtask.PickupDispatchTaskStatus; |
| 12 | import com.sl.ms.work.domain.enums.pickupDispatchtask.PickupDispatchTaskType; | 14 | import com.sl.ms.work.domain.enums.pickupDispatchtask.PickupDispatchTaskType; |
| 13 | import com.sl.ms.work.entity.PickupDispatchTaskEntity; | 15 | import com.sl.ms.work.entity.PickupDispatchTaskEntity; |
| 16 | +import com.sl.ms.work.entity.TransportOrderEntity; | ||
| 14 | import com.sl.ms.work.service.PickupDispatchTaskService; | 17 | import com.sl.ms.work.service.PickupDispatchTaskService; |
| 15 | import com.sl.ms.work.service.TransportOrderService; | 18 | import com.sl.ms.work.service.TransportOrderService; |
| 16 | import com.sl.transport.common.constant.Constants; | 19 | import com.sl.transport.common.constant.Constants; |
| @@ -19,6 +22,7 @@ import com.sl.transport.common.util.BeanUtil; | @@ -19,6 +22,7 @@ import com.sl.transport.common.util.BeanUtil; | ||
| 19 | import com.sl.transport.common.util.ObjectUtil; | 22 | import com.sl.transport.common.util.ObjectUtil; |
| 20 | import com.sl.transport.common.vo.CourierMsg; | 23 | import com.sl.transport.common.vo.CourierMsg; |
| 21 | import com.sl.transport.common.vo.CourierTaskMsg; | 24 | import com.sl.transport.common.vo.CourierTaskMsg; |
| 25 | +import com.sl.transport.common.vo.TransportInfoMsg; | ||
| 22 | import lombok.extern.slf4j.Slf4j; | 26 | import lombok.extern.slf4j.Slf4j; |
| 23 | import org.springframework.amqp.core.ExchangeTypes; | 27 | import org.springframework.amqp.core.ExchangeTypes; |
| 24 | import org.springframework.amqp.rabbit.annotation.Exchange; | 28 | import org.springframework.amqp.rabbit.annotation.Exchange; |
| @@ -28,6 +32,7 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener; | @@ -28,6 +32,7 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener; | ||
| 28 | import org.springframework.beans.factory.annotation.Autowired; | 32 | import org.springframework.beans.factory.annotation.Autowired; |
| 29 | import org.springframework.stereotype.Component; | 33 | import org.springframework.stereotype.Component; |
| 30 | 34 | ||
| 35 | +import javax.annotation.Resource; | ||
| 31 | import java.time.LocalDateTime; | 36 | import java.time.LocalDateTime; |
| 32 | import java.time.temporal.ChronoUnit; | 37 | import java.time.temporal.ChronoUnit; |
| 33 | import java.util.List; | 38 | import java.util.List; |
| @@ -49,6 +54,9 @@ public class CourierMQListener { | @@ -49,6 +54,9 @@ public class CourierMQListener { | ||
| 49 | @Autowired | 54 | @Autowired |
| 50 | private OrderFeign orderFeign; | 55 | private OrderFeign orderFeign; |
| 51 | 56 | ||
| 57 | + @Autowired | ||
| 58 | + private MQFeign mqFeign; | ||
| 59 | + | ||
| 52 | 60 | ||
| 53 | /** | 61 | /** |
| 54 | * 生成快递员取派件任务 | 62 | * 生成快递员取派件任务 |
| @@ -131,7 +139,19 @@ public class CourierMQListener { | @@ -131,7 +139,19 @@ public class CourierMQListener { | ||
| 131 | log.info("接收到快递员取件成功的消息 >>> msg = {}", msg); | 139 | log.info("接收到快递员取件成功的消息 >>> msg = {}", msg); |
| 132 | //解析消息 | 140 | //解析消息 |
| 133 | CourierMsg courierMsg = JSONUtil.toBean(msg, CourierMsg.class); | 141 | CourierMsg courierMsg = JSONUtil.toBean(msg, CourierMsg.class); |
| 134 | - System.out.println(courierMsg); | ||
| 135 | - //TODO 未实现具体逻辑 | 142 | + |
| 143 | + //订单转运单 | ||
| 144 | + TransportOrderEntity transportOrder = this.transportOrderService.orderToTransportOrder(courierMsg.getOrderId()); | ||
| 145 | + | ||
| 146 | + //发送运单跟踪消息 | ||
| 147 | + String info = StrUtil.format("神领快递员已取件, 取件人【{},电话 {}】", courierMsg.getCourierName(), courierMsg.getCourierMobile()); | ||
| 148 | + //构建消息实体类 | ||
| 149 | + String transportInfoMsg = TransportInfoMsg.builder() | ||
| 150 | + .transportOrderId(transportOrder.getId())//运单id | ||
| 151 | + .status("已取件")//消息状态 | ||
| 152 | + .info(info)//消息详情 | ||
| 153 | + .created(DateUtil.current())//创建时间 | ||
| 154 | + .build().toJson(); | ||
| 155 | + this.mqFeign.sendMsg(Constants.MQ.Exchanges.TRANSPORT_INFO, Constants.MQ.RoutingKeys.TRANSPORT_INFO_APPEND, transportInfoMsg); | ||
| 136 | } | 156 | } |
| 137 | } | 157 | } |
sl-express-ms-work-service/src/main/java/com/sl/ms/work/mq/TransportTaskMQListener.java
| @@ -34,6 +34,7 @@ import org.springframework.beans.factory.annotation.Autowired; | @@ -34,6 +34,7 @@ import org.springframework.beans.factory.annotation.Autowired; | ||
| 34 | import org.springframework.stereotype.Component; | 34 | import org.springframework.stereotype.Component; |
| 35 | import org.springframework.transaction.annotation.Transactional; | 35 | import org.springframework.transaction.annotation.Transactional; |
| 36 | 36 | ||
| 37 | +import java.util.ArrayList; | ||
| 37 | import java.util.List; | 38 | import java.util.List; |
| 38 | import java.util.stream.Collectors; | 39 | import java.util.stream.Collectors; |
| 39 | 40 | ||
| @@ -67,9 +68,12 @@ public class TransportTaskMQListener { | @@ -67,9 +68,12 @@ public class TransportTaskMQListener { | ||
| 67 | public void listenTransportTaskMsg(String msg) { | 68 | public void listenTransportTaskMsg(String msg) { |
| 68 | //解析消息 {"driverIds":[123,345], "truckPlanId":456, "truckId":1210114964812075008,"totalVolume":4.2,"endOrganId":90001,"totalWeight":7,"transportOrderIdList":[320733749248,420733749248],"startOrganId":100280} | 69 | //解析消息 {"driverIds":[123,345], "truckPlanId":456, "truckId":1210114964812075008,"totalVolume":4.2,"endOrganId":90001,"totalWeight":7,"transportOrderIdList":[320733749248,420733749248],"startOrganId":100280} |
| 69 | JSONObject jsonObject = JSONUtil.parseObj(msg); | 70 | JSONObject jsonObject = JSONUtil.parseObj(msg); |
| 70 | - | 71 | + JSONArray driverIds1 = jsonObject.getJSONArray("driverIds"); |
| 72 | + List<Long> driverIds = new ArrayList<>(); | ||
| 73 | + for (Object o : driverIds1.toArray()) { | ||
| 74 | + driverIds.add(Convert.toLong(o)); | ||
| 75 | + } | ||
| 71 | // 获取到司机ID列表 | 76 | // 获取到司机ID列表 |
| 72 | - List<Long> driverIds = CollUtil.getFieldValues(jsonObject, "driverIds", Long.class); | ||
| 73 | 77 | ||
| 74 | // 分配状态 | 78 | // 分配状态 |
| 75 | TransportTaskAssignedStatus assignedStatus = CollUtil.isEmpty(driverIds) ? TransportTaskAssignedStatus.MANUAL_DISTRIBUTED : TransportTaskAssignedStatus.DISTRIBUTED; | 79 | TransportTaskAssignedStatus assignedStatus = CollUtil.isEmpty(driverIds) ? TransportTaskAssignedStatus.MANUAL_DISTRIBUTED : TransportTaskAssignedStatus.DISTRIBUTED; |
sl-express-ms-work-service/src/main/java/com/sl/ms/work/service/impl/PickupDispatchTaskServiceImpl.java
| @@ -60,11 +60,12 @@ public class PickupDispatchTaskServiceImpl extends ServiceImpl<TaskPickupDispatc | @@ -60,11 +60,12 @@ public class PickupDispatchTaskServiceImpl extends ServiceImpl<TaskPickupDispatc | ||
| 60 | @Transactional | 60 | @Transactional |
| 61 | public Boolean updateStatus(PickupDispatchTaskDTO pickupDispatchTaskDTO) { | 61 | public Boolean updateStatus(PickupDispatchTaskDTO pickupDispatchTaskDTO) { |
| 62 | WorkExceptionEnum paramError = WorkExceptionEnum.PICKUP_DISPATCH_TASK_PARAM_ERROR; | 62 | WorkExceptionEnum paramError = WorkExceptionEnum.PICKUP_DISPATCH_TASK_PARAM_ERROR; |
| 63 | - if (ObjectUtil.hasEmpty(pickupDispatchTaskDTO.getId(), pickupDispatchTaskDTO.getStatus())) { | 63 | + PickupDispatchTaskStatus status = pickupDispatchTaskDTO.getStatus(); |
| 64 | + if (ObjectUtil.hasEmpty(pickupDispatchTaskDTO.getId(), status)) { | ||
| 64 | throw new SLException("更新取派件任务状态,id或status不能为空", paramError.getCode()); | 65 | throw new SLException("更新取派件任务状态,id或status不能为空", paramError.getCode()); |
| 65 | } | 66 | } |
| 66 | - | ||
| 67 | PickupDispatchTaskEntity pickupDispatchTask = getById(pickupDispatchTaskDTO.getId()); | 67 | PickupDispatchTaskEntity pickupDispatchTask = getById(pickupDispatchTaskDTO.getId()); |
| 68 | + pickupDispatchTask.setStatus(status); | ||
| 68 | 69 | ||
| 69 | switch (pickupDispatchTask.getStatus()) { | 70 | switch (pickupDispatchTask.getStatus()) { |
| 70 | case NEW: | 71 | case NEW: |
sl-express-ms-work-service/src/main/java/com/sl/ms/work/service/impl/TransportOrderServiceImpl.java
| @@ -159,6 +159,7 @@ public class TransportOrderServiceImpl extends | @@ -159,6 +159,7 @@ public class TransportOrderServiceImpl extends | ||
| 159 | transportOrder.setNextAgencyId(sendAgentId); | 159 | transportOrder.setNextAgencyId(sendAgentId); |
| 160 | //运单状态(1.新建 2.已装车 3.运输中 4.到达终端网点 5.已签收 6.拒收) | 160 | //运单状态(1.新建 2.已装车 3.运输中 4.到达终端网点 5.已签收 6.拒收) |
| 161 | transportOrder.setStatus(TransportOrderStatus.ARRIVED_END); | 161 | transportOrder.setStatus(TransportOrderStatus.ARRIVED_END); |
| 162 | + transportOrder.setIsRejection(false); | ||
| 162 | //调度状态(1.待调度2.未匹配线路3.已调度) | 163 | //调度状态(1.待调度2.未匹配线路3.已调度) |
| 163 | transportOrder.setSchedulingStatus(TransportOrderSchedulingStatus.SCHEDULED); | 164 | transportOrder.setSchedulingStatus(TransportOrderSchedulingStatus.SCHEDULED); |
| 164 | } | 165 | } |