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
sl-express-ms-web-driver/pom.xml
| ... | ... | @@ -28,6 +28,26 @@ |
| 28 | 28 | |
| 29 | 29 | <dependencies> |
| 30 | 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 | 51 | <groupId>com.sl-express.common</groupId> |
| 32 | 52 | <artifactId>sl-express-common</artifactId> |
| 33 | 53 | <version>${sl-express-common.version}</version> | ... | ... |
sl-express-ms-work-service/src/main/java/com/sl/ms/work/mq/CourierMQListener.java
| 1 | 1 | package com.sl.ms.work.mq; |
| 2 | 2 | |
| 3 | +import cn.hutool.core.date.DateUtil; | |
| 3 | 4 | import cn.hutool.core.date.LocalDateTimeUtil; |
| 4 | 5 | import cn.hutool.core.util.StrUtil; |
| 5 | 6 | import cn.hutool.json.JSONUtil; |
| 7 | +import com.sl.ms.base.api.common.MQFeign; | |
| 6 | 8 | import com.sl.ms.oms.api.OrderFeign; |
| 7 | 9 | import com.sl.ms.oms.dto.OrderDTO; |
| 8 | 10 | import com.sl.ms.oms.enums.OrderStatus; |
| ... | ... | @@ -11,6 +13,7 @@ import com.sl.ms.work.domain.enums.pickupDispatchtask.PickupDispatchTaskSignStat |
| 11 | 13 | import com.sl.ms.work.domain.enums.pickupDispatchtask.PickupDispatchTaskStatus; |
| 12 | 14 | import com.sl.ms.work.domain.enums.pickupDispatchtask.PickupDispatchTaskType; |
| 13 | 15 | import com.sl.ms.work.entity.PickupDispatchTaskEntity; |
| 16 | +import com.sl.ms.work.entity.TransportOrderEntity; | |
| 14 | 17 | import com.sl.ms.work.service.PickupDispatchTaskService; |
| 15 | 18 | import com.sl.ms.work.service.TransportOrderService; |
| 16 | 19 | import com.sl.transport.common.constant.Constants; |
| ... | ... | @@ -19,6 +22,7 @@ import com.sl.transport.common.util.BeanUtil; |
| 19 | 22 | import com.sl.transport.common.util.ObjectUtil; |
| 20 | 23 | import com.sl.transport.common.vo.CourierMsg; |
| 21 | 24 | import com.sl.transport.common.vo.CourierTaskMsg; |
| 25 | +import com.sl.transport.common.vo.TransportInfoMsg; | |
| 22 | 26 | import lombok.extern.slf4j.Slf4j; |
| 23 | 27 | import org.springframework.amqp.core.ExchangeTypes; |
| 24 | 28 | import org.springframework.amqp.rabbit.annotation.Exchange; |
| ... | ... | @@ -28,6 +32,7 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener; |
| 28 | 32 | import org.springframework.beans.factory.annotation.Autowired; |
| 29 | 33 | import org.springframework.stereotype.Component; |
| 30 | 34 | |
| 35 | +import javax.annotation.Resource; | |
| 31 | 36 | import java.time.LocalDateTime; |
| 32 | 37 | import java.time.temporal.ChronoUnit; |
| 33 | 38 | import java.util.List; |
| ... | ... | @@ -49,6 +54,9 @@ public class CourierMQListener { |
| 49 | 54 | @Autowired |
| 50 | 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 | 139 | log.info("接收到快递员取件成功的消息 >>> msg = {}", msg); |
| 132 | 140 | //解析消息 |
| 133 | 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 | 34 | import org.springframework.stereotype.Component; |
| 35 | 35 | import org.springframework.transaction.annotation.Transactional; |
| 36 | 36 | |
| 37 | +import java.util.ArrayList; | |
| 37 | 38 | import java.util.List; |
| 38 | 39 | import java.util.stream.Collectors; |
| 39 | 40 | |
| ... | ... | @@ -67,9 +68,12 @@ public class TransportTaskMQListener { |
| 67 | 68 | public void listenTransportTaskMsg(String msg) { |
| 68 | 69 | //解析消息 {"driverIds":[123,345], "truckPlanId":456, "truckId":1210114964812075008,"totalVolume":4.2,"endOrganId":90001,"totalWeight":7,"transportOrderIdList":[320733749248,420733749248],"startOrganId":100280} |
| 69 | 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 | 76 | // 获取到司机ID列表 |
| 72 | - List<Long> driverIds = CollUtil.getFieldValues(jsonObject, "driverIds", Long.class); | |
| 73 | 77 | |
| 74 | 78 | // 分配状态 |
| 75 | 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 | 60 | @Transactional |
| 61 | 61 | public Boolean updateStatus(PickupDispatchTaskDTO pickupDispatchTaskDTO) { |
| 62 | 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 | 65 | throw new SLException("更新取派件任务状态,id或status不能为空", paramError.getCode()); |
| 65 | 66 | } |
| 66 | - | |
| 67 | 67 | PickupDispatchTaskEntity pickupDispatchTask = getById(pickupDispatchTaskDTO.getId()); |
| 68 | + pickupDispatchTask.setStatus(status); | |
| 68 | 69 | |
| 69 | 70 | switch (pickupDispatchTask.getStatus()) { |
| 70 | 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 | 159 | transportOrder.setNextAgencyId(sendAgentId); |
| 160 | 160 | //运单状态(1.新建 2.已装车 3.运输中 4.到达终端网点 5.已签收 6.拒收) |
| 161 | 161 | transportOrder.setStatus(TransportOrderStatus.ARRIVED_END); |
| 162 | + transportOrder.setIsRejection(false); | |
| 162 | 163 | //调度状态(1.待调度2.未匹配线路3.已调度) |
| 163 | 164 | transportOrder.setSchedulingStatus(TransportOrderSchedulingStatus.SCHEDULED); |
| 164 | 165 | } | ... | ... |