Ver código fonte

提供托运订单生成、撤销、完结时更新贸易订单已委托量、实际成交量相关dubbo接口

yzc 2 anos atrás
pai
commit
919ea282a3

+ 5 - 0
sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/CompleteLogisticsOrderParam.java

@@ -42,6 +42,11 @@ public class CompleteLogisticsOrderParam implements Serializable {
      */
     private BigDecimal actualUnloadAmount;
 
+    /**
+     * 物流订单是否已全部完结
+     */
+    private Boolean isAllComplete;
+
     /**
      * 更新用户id 需传,订单状态变化记录需要
      */

+ 10 - 8
sckw-modules/sckw-order/src/main/java/com/sckw/order/dubbo/TradeOrderInfoServiceImpl.java

@@ -156,6 +156,9 @@ public class TradeOrderInfoServiceImpl implements TradeOrderInfoService {
         if (Objects.isNull(entrustAmount) || Objects.isNull(actualLoadAmount) || Objects.isNull(actualUnloadAmount)) {
             return HttpResult.error("任务量或装卸量不能为空!");
         }
+        if (Objects.isNull(param.getIsAllComplete())) {
+            return HttpResult.error("物流订单是否已全部完结不能为空!");
+        }
         String lockKey = String.format(RedisConstant.TORDER_UPDATE_AMOUNT_KEY, id);
         if (Boolean.FALSE.equals(RedissonUtils.tryLock(lockKey, 10L, 30L))) {
             return HttpResult.error("业务繁忙,请稍后再试!");
@@ -176,14 +179,13 @@ public class TradeOrderInfoServiceImpl implements TradeOrderInfoService {
                 totalActualAmount = Objects.isNull(order.getActualAmount()) ? actualUnloadAmount : order.getActualAmount().add(actualUnloadAmount);
             }
             order.setEntrustAmount(totalEntrustAmount).setActualAmount(totalActualAmount).setUpdateBy(param.getUpdateBy());
-            //todo 自动完结订单规则缺少
-//            if (amount.compareTo(addActualAmount) == 0) {
-//                order.setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_5.getValue()));
-//                KwoTradeOrderTrack track = new KwoTradeOrderTrack();
-//                track.setTOrderId(order.getId()).setTOrderNo(order.getTOrderNo()).setStatus(order.getStatus())
-//                        .setCreateBy(updateBy).setUpdateBy(updateBy);
-//                kwoTradeOrderTrackService.insert(track);
-//            }
+            if (param.getIsAllComplete() && totalActualAmount.compareTo(order.getAmount()) >= 0) {
+                order.setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_5.getValue()));
+                KwoTradeOrderTrack track = new KwoTradeOrderTrack();
+                track.setTOrderId(order.getId()).setTOrderNo(order.getTOrderNo()).setStatus(order.getStatus())
+                        .setCreateBy(updateBy).setUpdateBy(updateBy);
+                kwoTradeOrderTrackService.insert(track);
+            }
             kwoTradeOrderService.updateById(order);
             //更新mongodb
             SckwTradeOrder updateParam = new SckwTradeOrder();

+ 3 - 0
sckw-modules/sckw-product/src/main/java/com/sckw/product/dubbo/GoodsInfoServiceImpl.java

@@ -44,6 +44,9 @@ public class GoodsInfoServiceImpl implements GoodsInfoService {
 
     @Override
     public Map<Long, KwpGoods> getGoodsByIds(List<Long> ids) {
+        if (CollectionUtils.isEmpty(ids)) {
+            return Collections.emptyMap();
+        }
         List<KwpGoods> list = BeanUtils.copyToList(kwpGoodsService.selectByIds(ids), KwpGoods.class);
         if (CollectionUtils.isEmpty(list)) {
             return Collections.emptyMap();