|
|
@@ -366,7 +366,7 @@ public class BizWaybillOrderServiceImpl implements IBizWaybillOrderService
|
|
|
* @return 结果数组,每个元素表示对应订单的结果 [0:成功数,1:失败数]
|
|
|
*/
|
|
|
@Override
|
|
|
- public int[] batchInsertBizWaybillOrder(List<JDOrderDTO> orderList, Integer orderType) {
|
|
|
+ public int[] batchInsertJDBizWaybillOrder(List<JDOrderDTO> orderList, Integer orderType) {
|
|
|
int successCount = 0;
|
|
|
int failCount = 0;
|
|
|
List<String> errorMessages = new ArrayList<>();
|
|
|
@@ -376,9 +376,48 @@ public class BizWaybillOrderServiceImpl implements IBizWaybillOrderService
|
|
|
for (JDOrderDTO dto : orderList) {
|
|
|
try {
|
|
|
// 将 JDOrderDTO 转换为 BizWaybillOrder
|
|
|
- BizWaybillOrder bizWaybillOrder = convertToBizWaybillOrder(dto, orderType, loginUser);
|
|
|
- this.insertBizWaybillOrder(bizWaybillOrder);
|
|
|
- successCount++;
|
|
|
+ BizWaybillOrder bizWaybillOrder = convertToBizWaybillOrder(dto, loginUser);
|
|
|
+
|
|
|
+ // 前置校验
|
|
|
+ JSONObject jsonObject = logisticsOrderService.precheckOrder(bizWaybillOrder);
|
|
|
+ if (!jsonObject.getBooleanValue("success")) {
|
|
|
+ log.warn("订单前置校验未通过!发件人:{}, 收件人:{}, 原因:{}",
|
|
|
+ dto.getSenderName(), dto.getReceiverName(), jsonObject.getString("msg"));
|
|
|
+ failCount++;
|
|
|
+ errorMessages.add(String.format("订单 %s-%s 校验失败:%s",
|
|
|
+ dto.getSenderName(), dto.getReceiverName(), jsonObject.getString("msg")));
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 调用下单接口
|
|
|
+ JSONObject orderObject = logisticsOrderService.createOrder(bizWaybillOrder);
|
|
|
+ if (!orderObject.getBooleanValue("success")) {
|
|
|
+ log.warn("下单失败!发件人:{}, 收件人:{}, 原因:{}",
|
|
|
+ dto.getSenderName(), dto.getReceiverName(), orderObject.getString("msg"));
|
|
|
+ failCount++;
|
|
|
+ errorMessages.add(String.format("订单 %s-%s 下单失败:%s",
|
|
|
+ dto.getSenderName(), dto.getReceiverName(), orderObject.getString("msg")));
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 设置默认值
|
|
|
+ bizWaybillOrder.setPickupType(1);
|
|
|
+ bizWaybillOrder.setCreateTime(DateUtils.getNowDate());
|
|
|
+ bizWaybillOrder.setUserId(loginUser.getUserid());
|
|
|
+ bizWaybillOrder.setDeptId(loginUser.getSysUser().getDeptId());
|
|
|
+
|
|
|
+ // 保存到数据库
|
|
|
+ int result = bizWaybillOrderMapper.insertBizWaybillOrder(bizWaybillOrder);
|
|
|
+ if (result > 0) {
|
|
|
+ successCount++;
|
|
|
+ // 保存最近使用地址
|
|
|
+ saveRecentAddresses(bizWaybillOrder, loginUser.getUserid());
|
|
|
+ } else {
|
|
|
+ failCount++;
|
|
|
+ errorMessages.add(String.format("订单 %s-%s 保存失败",
|
|
|
+ dto.getSenderName(), dto.getReceiverName()));
|
|
|
+ }
|
|
|
+
|
|
|
} catch (Exception e) {
|
|
|
log.error("批量下单异常!发件人:{}, 收件人:{}",
|
|
|
dto.getSenderName(), dto.getReceiverName(), e);
|
|
|
@@ -396,11 +435,11 @@ public class BizWaybillOrderServiceImpl implements IBizWaybillOrderService
|
|
|
/**
|
|
|
* 将 JDOrderDTO 转换为 BizWaybillOrder
|
|
|
*/
|
|
|
- private BizWaybillOrder convertToBizWaybillOrder(JDOrderDTO dto, Integer orderType, LoginUser loginUser) {
|
|
|
+ private BizWaybillOrder convertToBizWaybillOrder(JDOrderDTO dto, LoginUser loginUser) {
|
|
|
BizWaybillOrder bizWaybillOrder = new BizWaybillOrder();
|
|
|
|
|
|
// 设置订单类型
|
|
|
- bizWaybillOrder.setOrderType(orderType);
|
|
|
+ bizWaybillOrder.setOrderType(1);
|
|
|
|
|
|
// 复制基本信息
|
|
|
bizWaybillOrder.setSenderName(dto.getSenderName());
|