Răsfoiți Sursa

贸易订单相关

yzc 1 an în urmă
părinte
comite
a9cbf98b3c

+ 6 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/controller/KwoTradeOrderController.java

@@ -203,4 +203,10 @@ public class KwoTradeOrderController {
         return HttpResult.ok(kwoTradeOrderService.goodsUnit(id));
     }
 
+
+    @GetMapping("/getAddressInfo")
+    public HttpResult getAddressInfo(@RequestParam Long id) {
+        return HttpResult.ok("贸易订单地址信息查询成功", kwoTradeOrderService.getAddressInfo(id));
+    }
+
 }

+ 2 - 1
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/KwoTradeOrderAmount.java

@@ -38,7 +38,8 @@ public class KwoTradeOrderAmount extends BaseModel implements Serializable {
     /**
      * 地址id
      */
-    private Long addressId;
+    @JsonProperty("tAddressId")
+    private Long tAddressId;
 
     /**
      * 货物数量

+ 42 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/OrderAddressInfoRes.java

@@ -0,0 +1,42 @@
+package com.sckw.order.model.vo.res;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+/**
+ * @author: yzc
+ * @date: 2024-03-05  15:34
+ * @desc: 订单地址信息响应
+ */
+@Getter
+@Setter
+@ToString
+@Accessors(chain = true)
+public class OrderAddressInfoRes {
+
+    /**
+     * 装货地址名称集合
+     */
+    private List<String> loadNameList;
+
+    /**
+     * 装货详细地址集合
+     */
+    private List<String> loadDetailAddressList;
+
+
+    /**
+     * 卸货址名称集合
+     */
+    private List<String> unloadNameList;
+
+    /**
+     * 卸货详细地址集合
+     */
+    private List<String> unloadDetailAddressList;
+
+}

+ 13 - 4
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderAddressService.java

@@ -1,5 +1,6 @@
 package com.sckw.order.serivce;
 
+import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
@@ -15,7 +16,10 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.stereotype.Service;
 
-import java.util.*;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @desc: 交易订单装卸货地址信息service
@@ -71,9 +75,11 @@ public class KwoTradeOrderAddressService {
      */
     public List<KwoTradeOrderAddress> getByOrderId(Long torderId) {
         LambdaQueryWrapper<KwoTradeOrderAddress> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(KwoTradeOrderAddress::getTOrderId, torderId).eq(KwoTradeOrderAddress::getDelFlag, Global.NO);
+        wrapper.eq(KwoTradeOrderAddress::getTOrderId, torderId)
+                .eq(KwoTradeOrderAddress::getDelFlag, Global.NO)
+                .orderByAsc(KwoTradeOrderAddress::getSort);
         List<KwoTradeOrderAddress> list = kwoTradeOrderAddressMapper.selectList(wrapper);
-        return CollectionUtils.emptyIfNull(list);
+        return CollUtil.emptyIfNull(list);
     }
 
     /**
@@ -135,7 +141,10 @@ public class KwoTradeOrderAddressService {
      */
     public List<KwoTradeOrderAddress> getByOrderIds(Collection<Long> tOrderIds) {
         LambdaQueryWrapper<KwoTradeOrderAddress> wrapper = new LambdaQueryWrapper<>();
-        wrapper.in(KwoTradeOrderAddress::getTOrderId, tOrderIds).eq(KwoTradeOrderAddress::getDelFlag, Global.NO);
+        wrapper.in(KwoTradeOrderAddress::getTOrderId, tOrderIds)
+                .eq(KwoTradeOrderAddress::getDelFlag, Global.NO)
+                .orderByAsc(KwoTradeOrderAddress::getTOrderId)
+                .orderByAsc(KwoTradeOrderAddress::getSort);
         List<KwoTradeOrderAddress> list = kwoTradeOrderAddressMapper.selectList(wrapper);
         return CollectionUtils.emptyIfNull(list);
     }

+ 59 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderAmountService.java

@@ -1,10 +1,17 @@
 package com.sckw.order.serivce;
 
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.sckw.core.model.constant.Global;
 import com.sckw.order.dao.KwoTradeOrderAmountMapper;
+import com.sckw.order.model.KwoTradeOrderAmount;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * @author: yzc
  * @date: 2024-03-04  16:57
@@ -17,4 +24,56 @@ public class KwoTradeOrderAmountService {
 
     private final KwoTradeOrderAmountMapper tradeOrderAmountMapper;
 
+    /**
+     * @param orderAmount
+     * @return void
+     * @desc 添加
+     * @author yzc
+     * @date 2024/3/5 15:04
+     */
+    public void add(KwoTradeOrderAmount orderAmount) {
+        tradeOrderAmountMapper.insert(orderAmount);
+    }
+
+    /**
+     * @param orderId
+     * @return void
+     * @desc 根据贸易订单id删除
+     * @author yzc
+     * @date 2024/3/5 15:04
+     */
+    public void delByOrderId(Long orderId) {
+        LambdaUpdateWrapper<KwoTradeOrderAmount> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.eq(KwoTradeOrderAmount::getTOrderId, orderId).eq(KwoTradeOrderAmount::getDelFlag, Global.NO)
+                .set(KwoTradeOrderAmount::getDelFlag, Global.YES);
+        tradeOrderAmountMapper.update(null, wrapper);
+    }
+
+    /**
+     * @desc: 根据orderIds删除
+     * @author: yzc
+     * @date: 2023-07-18 16:50
+     * @Param orderIds:
+     * @return: void
+     */
+    public void delByOrderIds(List<Long> orderIds) {
+        LambdaUpdateWrapper<KwoTradeOrderAmount> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.in(KwoTradeOrderAmount::getTOrderId, orderIds).eq(KwoTradeOrderAmount::getDelFlag, Global.NO)
+                .set(KwoTradeOrderAmount::getDelFlag, Global.YES);
+        tradeOrderAmountMapper.update(null, wrapper);
+    }
+
+    /**
+     * @desc: 根据orderId获取
+     * @author: yzc
+     * @date: 2023-07-18 11:24
+     * @Param torderId:
+     * @return: java.util.List<com.sckw.order.model.KwoTradeOrderAmount>
+     */
+    public List<KwoTradeOrderAmount> getByOrderId(Long torderId) {
+        LambdaQueryWrapper<KwoTradeOrderAmount> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(KwoTradeOrderAmount::getTOrderId, torderId).eq(KwoTradeOrderAmount::getDelFlag, Global.NO);
+        List<KwoTradeOrderAmount> list = tradeOrderAmountMapper.selectList(wrapper);
+        return CollUtil.emptyIfNull(list);
+    }
 }

+ 44 - 3
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -100,6 +100,7 @@ public class KwoTradeOrderService {
     private final KwoTradeOrderContractService kwoTradeOrderContractService;
     private final KwoTradeOrderTrackService kwoTradeOrderTrackService;
     private final KwoTradeOrderGoodsUnitService kwoTradeOrderGoodsUnitService;
+    private final KwoTradeOrderAmountService tradeOrderAmountService;
 
     @Value("${url.order.list.valet.pc}")
     private String pcValetListUrl;
@@ -224,6 +225,7 @@ public class KwoTradeOrderService {
 
             //地址信息
             kwoTradeOrderAddressService.delByOrderId(id);
+            tradeOrderAmountService.delByOrderId(id);
             List<AddressInfo> addressInfos = param.getAddressInfo();
             if (CollectionUtils.isNotEmpty(addressInfos)) {
                 BigDecimal amount = Objects.isNull(param.getAmount()) ? BigDecimal.ZERO : param.getAmount();
@@ -251,10 +253,13 @@ public class KwoTradeOrderService {
                         totalUnloadAmount = totalUnloadAmount.add(e.getAmount());
                         unloadFlag = true;
                     }
+                    //地址信息
                     Long addressId = kwoTradeOrderAddressService.add(address);
+                    //分配量信息
                     KwoTradeOrderAmount orderAmount = new KwoTradeOrderAmount();
                     orderAmount.setTOrderId(id).setAmount(e.getAmount())
-                            .setAddressId(addressId);
+                            .setTAddressId(addressId);
+                    tradeOrderAmountService.add(orderAmount);
                 }
                 if (loadFlag && totalLoadAmount.compareTo(amount) != 0) {
                     throw new BusinessException("装货分配量总量与订单总量不符!");
@@ -262,8 +267,6 @@ public class KwoTradeOrderService {
                 if (unloadFlag && totalUnloadAmount.compareTo(amount) != 0) {
                     throw new BusinessException("卸货分配量总量与订单总量不符!");
                 }
-                kwoTradeOrderAddressService.insertBatch(list);
-                //分配量信息
             }
 
             //合同信息
@@ -761,11 +764,18 @@ public class KwoTradeOrderService {
         //地址信息
         List<KwoTradeOrderAddress> addressList = kwoTradeOrderAddressService.getByOrderId(id);
         if (CollectionUtils.isNotEmpty(addressList)) {
+            //分配量信息
+            List<KwoTradeOrderAmount> amountList = tradeOrderAmountService.getByOrderId(id);
+            Map<Long, KwoTradeOrderAmount> amountMap = amountList.stream().collect(Collectors.toMap(KwoTradeOrderAmount::getTAddressId, e -> e, (k1, k2) -> k1));
             List<AddressInfoDetailRes> addressInfoDetails = new ArrayList<>(addressList.size());
             addressList.forEach(e -> {
                 AddressInfoDetailRes address = BeanUtils.copyProperties(e, AddressInfoDetailRes.class);
                 address.setAddressTypeLabel(CollectionUtils.isNotEmpty(orderAddressMap) ? orderAddressMap.get(address.getAddressType()) : null);
                 address.setTypeLabel(CollectionUtils.isNotEmpty(addressMap) ? addressMap.get(address.getType()) : null);
+                KwoTradeOrderAmount orderAmount = amountMap.get(e.getId());
+                if (Objects.nonNull(orderAmount)) {
+                    address.setAmount(orderAmount.getAmount());
+                }
                 addressInfoDetails.add(address);
             });
             detail.setAddressInfo(addressInfoDetails);
@@ -1269,6 +1279,7 @@ public class KwoTradeOrderService {
         kwoTradeOrderGoodsService.delByOrderIds(ids);
         kwoTradeOrderUnitService.delByOrderIds(ids);
         kwoTradeOrderAddressService.delByOrderIds(ids);
+        tradeOrderAmountService.delByOrderIds(ids);
         kwoTradeOrderContractService.delByOrderIds(ids);
         //更新mongodb
         ids.forEach(id -> {
@@ -1462,4 +1473,34 @@ public class KwoTradeOrderService {
 
         return unitDetails;
     }
+
+    /**
+     * @desc 根据id获取地址信息
+     * @param id
+     * @return com.sckw.order.model.vo.res.OrderAddressInfoRes
+     * @author yzc
+     * @date 2024/3/5 15:50
+     */
+    public OrderAddressInfoRes getAddressInfo(Long id) {
+        OrderAddressInfoRes res = new OrderAddressInfoRes();
+        List<String> loadNameList = new ArrayList<>();
+        List<String> loadDetailAddressList = new ArrayList<>();
+        List<String> unloadNameList = new ArrayList<>();
+        List<String> unloadDetailAddressList = new ArrayList<>();
+        List<KwoTradeOrderAddress> list = kwoTradeOrderAddressService.getByOrderId(id);
+        list.forEach(e -> {
+            if (OrderAddressTypeEnum.LOAD.getType().equals(e.getAddressType())) {
+                loadNameList.add(e.getName());
+                loadDetailAddressList.add(e.getCityName() + e.getDetailAddress());
+            } else {
+                unloadNameList.add(e.getName());
+                unloadDetailAddressList.add(e.getCityName() + e.getDetailAddress());
+            }
+        });
+        res.setLoadNameList(loadNameList)
+                .setLoadDetailAddressList(loadDetailAddressList)
+                .setUnloadNameList(unloadNameList)
+                .setUnloadDetailAddressList(unloadDetailAddressList);
+        return res;
+    }
 }