Commit 8dcc2a6efa6ac8745cc5922798d056b3aad98438

Authored by shaofan
1 parent df3394c5

Add JAXB dependencies, update transport order logic, refine CourierMQ listener, …

…and adjust CORS configuration
sl-express-gateway/src/main/resources/bootstrap-local.yml
... ... @@ -19,9 +19,7 @@ spring:
19 19 globalcors:
20 20 cors-configurations:
21 21 '[/**]':
22   - allowed-origins:
23   - - "http://127.0.0.1:5173"
24   - - "http://localhost:5173"
  22 + allowed-origin-patterns: "*"
25 23 allowed-headers: "*"
26 24 allow-credentials: true
27 25 allowed-methods:
... ...
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&lt;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 }
... ...