|
|
@@ -1,5 +1,7 @@
|
|
|
package com.sckw.order.serivce;
|
|
|
|
|
|
+import com.google.common.collect.Lists;
|
|
|
+
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.date.DateTime;
|
|
|
@@ -11,6 +13,9 @@ import com.github.pagehelper.PageHelper;
|
|
|
import com.github.pagehelper.PageInfo;
|
|
|
import com.sckw.contract.api.RemoteContractService;
|
|
|
import com.sckw.contract.api.model.dto.res.ContractCommonInfoResDto;
|
|
|
+import com.sckw.contract.api.model.vo.GoodsInfoDto;
|
|
|
+import com.sckw.contract.api.model.vo.TradeContractResDto;
|
|
|
+import com.sckw.contract.api.model.vo.TradeContractUnitDto;
|
|
|
import com.sckw.core.common.enums.enums.DictTypeEnum;
|
|
|
import com.sckw.core.exception.BusinessException;
|
|
|
import com.sckw.core.exception.CustomPromptException;
|
|
|
@@ -22,20 +27,18 @@ import com.sckw.core.model.page.PageResult;
|
|
|
import com.sckw.core.model.vo.TableBottom;
|
|
|
import com.sckw.core.model.vo.TableStatisticRes;
|
|
|
import com.sckw.core.model.vo.TableTop;
|
|
|
-import com.sckw.core.utils.CollectionUtils;
|
|
|
-import com.sckw.core.utils.DateUtils;
|
|
|
-import com.sckw.core.utils.OrderGenerateSeqNoUtils;
|
|
|
-import com.sckw.core.utils.StringUtils;
|
|
|
+import com.sckw.core.utils.*;
|
|
|
import com.sckw.core.web.constant.HttpStatus;
|
|
|
import com.sckw.core.web.context.LoginUserHolder;
|
|
|
import com.sckw.core.web.response.HttpResult;
|
|
|
import com.sckw.manage.api.RemoteManageService;
|
|
|
import com.sckw.manage.api.model.dto.res.FindEntCooperateResVo;
|
|
|
import com.sckw.mongo.model.SckwTradeOrder;
|
|
|
+import com.sckw.order.api.model.OrderSaleVo;
|
|
|
import com.sckw.order.api.model.TradeOrderCountStatisticsDTO;
|
|
|
import com.sckw.order.dao.KwoTradeOrderMapper;
|
|
|
-import com.sckw.order.enums.*;
|
|
|
import com.sckw.order.enums.ContractStatusEnum;
|
|
|
+import com.sckw.order.enums.*;
|
|
|
import com.sckw.order.model.*;
|
|
|
import com.sckw.order.model.dto.*;
|
|
|
import com.sckw.order.model.vo.req.*;
|
|
|
@@ -46,6 +49,7 @@ import com.sckw.payment.api.model.constant.ChannelEnum;
|
|
|
import com.sckw.payment.api.model.dto.WalletDto;
|
|
|
import com.sckw.payment.api.model.dto.common.R;
|
|
|
import com.sckw.product.api.dubbo.GoodsInfoService;
|
|
|
+import com.sckw.product.api.model.AddressInfoDetail;
|
|
|
import com.sckw.product.api.model.GoodsDetail;
|
|
|
import com.sckw.product.api.model.GoodsUnitDetail;
|
|
|
import com.sckw.product.api.model.KwpGoods;
|
|
|
@@ -58,6 +62,7 @@ import com.sckw.stream.model.UserInfo;
|
|
|
import com.sckw.system.api.RemoteSystemService;
|
|
|
import com.sckw.system.api.model.dto.res.*;
|
|
|
import com.sckw.transport.api.dubbo.TransportRemoteService;
|
|
|
+import com.sckw.transport.api.model.param.AddLogisticOrderParam;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
@@ -68,6 +73,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
import java.util.function.Function;
|
|
|
@@ -113,6 +119,7 @@ public class KwoTradeOrderService {
|
|
|
private final KwoTradeOrderTrackService kwoTradeOrderTrackService;
|
|
|
private final KwoTradeOrderGoodsUnitService kwoTradeOrderGoodsUnitService;
|
|
|
private final KwoTradeOrderAmountService tradeOrderAmountService;
|
|
|
+ private final KwoTradeOrderTransportService kwoTradeOrderTransportService;
|
|
|
|
|
|
@Value("${url.order.list.valet.pc}")
|
|
|
private String pcValetListUrl;
|
|
|
@@ -237,13 +244,13 @@ public class KwoTradeOrderService {
|
|
|
//地址信息
|
|
|
kwoTradeOrderAddressService.delByOrderId(id);
|
|
|
tradeOrderAmountService.delByOrderId(id);
|
|
|
- List<AddressInfo> addressInfos = param.getAddressInfo();
|
|
|
- if (CollUtil.isNotEmpty(addressInfos)) {
|
|
|
+ List<AddressInfoDto> addressInfoDtos = param.getAddressInfoDto();
|
|
|
+ if (CollUtil.isNotEmpty(addressInfoDtos)) {
|
|
|
BigDecimal amount = Objects.isNull(param.getAmount()) ? BigDecimal.ZERO : param.getAmount();
|
|
|
if (!isDraft) {
|
|
|
boolean isPurchase = OrderSourceEnum.PURCHASE.getType().equals(tradeOrder.getSource());
|
|
|
if (isPurchase) {
|
|
|
- List<AddressInfo> loadAddress = addressInfos.stream().filter(e -> Objects.equals(e.getAddressType(), OrderAddressTypeEnum.LOAD.getType())).toList();
|
|
|
+ List<AddressInfoDto> loadAddress = addressInfoDtos.stream().filter(e -> Objects.equals(e.getAddressType(), OrderAddressTypeEnum.LOAD.getType())).toList();
|
|
|
if (CollUtil.isEmpty(loadAddress) || loadAddress.size() != 1) {
|
|
|
throw new BusinessException("采购下单装货地址信息有误!");
|
|
|
}
|
|
|
@@ -252,9 +259,9 @@ public class KwoTradeOrderService {
|
|
|
BigDecimal totalUnloadAmount = BigDecimal.ZERO;
|
|
|
boolean loadFlag = false;
|
|
|
boolean unloadFlag = false;
|
|
|
- for (AddressInfo e : addressInfos) {
|
|
|
+ for (AddressInfoDto e : addressInfoDtos) {
|
|
|
if (Objects.equals(e.getAddressType(), OrderAddressTypeEnum.LOAD.getType())) {
|
|
|
- if (isPurchase){
|
|
|
+ if (isPurchase) {
|
|
|
e.setAmount(amount);
|
|
|
}
|
|
|
totalLoadAmount = totalLoadAmount.add(e.getAmount());
|
|
|
@@ -273,7 +280,7 @@ public class KwoTradeOrderService {
|
|
|
}
|
|
|
AtomicInteger loadSort = new AtomicInteger(0);
|
|
|
AtomicInteger unloadSort = new AtomicInteger(0);
|
|
|
- addressInfos.forEach(e -> {
|
|
|
+ addressInfoDtos.forEach(e -> {
|
|
|
KwoTradeOrderAddress address = BeanUtil.copyProperties(e, KwoTradeOrderAddress.class);
|
|
|
address.setTOrderId(id).setTOrderNo(tOrderNo);
|
|
|
//todo MongoDB如何存多个地址信息?
|
|
|
@@ -706,7 +713,7 @@ public class KwoTradeOrderService {
|
|
|
List.of(DictTypeEnum.TRADE_TYPE.getType(), DictTypeEnum.PICKUP_TYPE.getType(),
|
|
|
DictTypeEnum.DELIVERY_TYPE.getType(), DictTypeEnum.TORDER_SOURCE.getType(), DictTypeEnum.TORDER_STATUS.getType(),
|
|
|
DictTypeEnum.PRODUCT_NAME_TYPE.getType(), DictTypeEnum.UNIT_TYPE.getType(), DictTypeEnum.TAX_RATE.getType(),
|
|
|
- DictTypeEnum.TORDER_UNIT_TYPE.getType(), DictTypeEnum.TORDER_ADDRESS_TYPE.getType(), DictTypeEnum.ADDRESS_TYPE.getType()));
|
|
|
+ DictTypeEnum.TORDER_UNIT_TYPE.getType(), DictTypeEnum.TORDER_ADDRESS_TYPE.getType(), DictTypeEnum.ADDRESS_TYPE.getType(), DictTypeEnum.CONSIGNMENT_WAY.getType(), DictTypeEnum.CHARGING_TYPE.getType()));
|
|
|
Map<String, String> tradeMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
|
|
|
Map<String, String> pickupMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
|
|
|
Map<String, String> deleveryMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
|
|
|
@@ -715,6 +722,8 @@ public class KwoTradeOrderService {
|
|
|
Map<String, String> prodcutNameMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
|
|
|
Map<String, String> unitMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
|
|
|
Map<String, String> taxRateMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
|
|
|
+ Map<String, String> chargeTypeMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
|
|
|
+ Map<String, String> consignmentWayMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
|
|
|
Map<String, String> orderUnitMap, orderAddressMap, addressMap;
|
|
|
if (CollUtil.isNotEmpty(dict)) {
|
|
|
tradeMap = dict.get(DictTypeEnum.TRADE_TYPE.getType());
|
|
|
@@ -728,6 +737,8 @@ public class KwoTradeOrderService {
|
|
|
orderUnitMap = dict.get(DictTypeEnum.TORDER_UNIT_TYPE.getType());
|
|
|
orderAddressMap = dict.get(DictTypeEnum.TORDER_ADDRESS_TYPE.getType());
|
|
|
addressMap = dict.get(DictTypeEnum.ADDRESS_TYPE.getType());
|
|
|
+ chargeTypeMap = dict.get(DictTypeEnum.CHARGING_TYPE.getType());
|
|
|
+ consignmentWayMap = dict.get(DictTypeEnum.CONSIGNMENT_WAY.getType());
|
|
|
} else {
|
|
|
orderUnitMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
|
|
|
orderAddressMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
|
|
|
@@ -743,7 +754,10 @@ public class KwoTradeOrderService {
|
|
|
.setPickupTypeLabel(CollUtil.isNotEmpty(pickupMap) ? pickupMap.get(detail.getPickupType()) : null)
|
|
|
.setDeliveryTypeLabel(CollUtil.isNotEmpty(deleveryMap) ? deleveryMap.get(detail.getDeliveryType()) : null)
|
|
|
.setSourceLabel(CollUtil.isNotEmpty(sourceMap) ? sourceMap.get(detail.getSource()) : null)
|
|
|
- .setStatusLabel(CollUtil.isNotEmpty(statusMap) ? statusMap.get(String.valueOf(detail.getStatus())) : null);
|
|
|
+ .setStatusLabel(CollUtil.isNotEmpty(statusMap) ? statusMap.get(String.valueOf(detail.getStatus())) : null)
|
|
|
+ .setChargeTypeLabel(CollUtil.isNotEmpty(chargeTypeMap) ? chargeTypeMap.get(String.valueOf(detail.getChargeType())) : null)
|
|
|
+ .setConsignmentWayLabel(CollUtil.isNotEmpty(consignmentWayMap) ? consignmentWayMap.get(String.valueOf(detail.getConsignmentWay())) : null)
|
|
|
+ ;
|
|
|
//商品信息
|
|
|
KwoTradeOrderGoods orderGoods = kwoTradeOrderGoodsService.getByOrderId(id);
|
|
|
if (Objects.nonNull(orderGoods)) {
|
|
|
@@ -764,15 +778,15 @@ public class KwoTradeOrderService {
|
|
|
detail.setGoodsInfo(goodsDetail);
|
|
|
|
|
|
//商品辅助单位信息
|
|
|
- List<GoodsUnitDetailRes> assistUnit = kwoTradeOrderGoodsUnitService.findGoodsUnitDetail(id);
|
|
|
- if (CollUtil.isNotEmpty(assistUnit)) {
|
|
|
- Map<String, String> finalUnitMap = unitMap;
|
|
|
- assistUnit.forEach(e -> {
|
|
|
- e.setFromUnitName(CollUtil.isNotEmpty(finalUnitMap) ? finalUnitMap.get(e.getFromUnit()) : null);
|
|
|
- e.setToUnitName(CollUtil.isNotEmpty(finalUnitMap) ? finalUnitMap.get(e.getToUnit()) : null);
|
|
|
- });
|
|
|
- }
|
|
|
- detail.setAssistUnit(assistUnit);
|
|
|
+// List<GoodsUnitDetailRes> assistUnit = kwoTradeOrderGoodsUnitService.findGoodsUnitDetail(id);
|
|
|
+// if (CollUtil.isNotEmpty(assistUnit)) {
|
|
|
+// Map<String, String> finalUnitMap = unitMap;
|
|
|
+// assistUnit.forEach(e -> {
|
|
|
+// e.setFromUnitName(CollUtil.isNotEmpty(finalUnitMap) ? finalUnitMap.get(e.getFromUnit()) : null);
|
|
|
+// e.setToUnitName(CollUtil.isNotEmpty(finalUnitMap) ? finalUnitMap.get(e.getToUnit()) : null);
|
|
|
+// });
|
|
|
+// }
|
|
|
+// detail.setAssistUnit(assistUnit);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -793,9 +807,9 @@ public class KwoTradeOrderService {
|
|
|
//分配量信息
|
|
|
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());
|
|
|
+ List<AddressInfoDtoDetailRes> addressInfoDetails = new ArrayList<>(addressList.size());
|
|
|
addressList.forEach(e -> {
|
|
|
- AddressInfoDetailRes address = BeanUtil.copyProperties(e, AddressInfoDetailRes.class);
|
|
|
+ AddressInfoDtoDetailRes address = BeanUtil.copyProperties(e, AddressInfoDtoDetailRes.class);
|
|
|
address.setAddressTypeLabel(CollUtil.isNotEmpty(orderAddressMap) ? orderAddressMap.get(address.getAddressType()) : null);
|
|
|
address.setTypeLabel(CollUtil.isNotEmpty(addressMap) ? addressMap.get(address.getType()) : null);
|
|
|
KwoTradeOrderAmount orderAmount = amountMap.get(e.getId());
|
|
|
@@ -819,6 +833,40 @@ public class KwoTradeOrderService {
|
|
|
}
|
|
|
detail.setContractInfo(contractInfo);
|
|
|
}
|
|
|
+ //物流合同信息和承运单位信息
|
|
|
+ List<KwoTradeOrderTransport> list = kwoTradeOrderTransportService.queryList(id);
|
|
|
+ if (CollUtil.isNotEmpty(list)) {
|
|
|
+ Map<Long, ContractCommonInfoResDto> contractMap = remoteContractService.queryContractBaseInfo(list.stream().map(KwoTradeOrderTransport::getContractId).collect(Collectors.toList()));
|
|
|
+
|
|
|
+ List<ContractInfo> collect = list.stream().map(d -> {
|
|
|
+ ContractInfo contractInfo = new ContractInfo();
|
|
|
+ contractInfo.setContractId(d.getContractId());
|
|
|
+ contractInfo.setContractNo(d.getContractNo());
|
|
|
+ Optional.ofNullable(contractMap.get(d.getContractId())).ifPresent(c -> {
|
|
|
+ contractInfo.setContractName(c.getContactName());
|
|
|
+ contractInfo.setContractSigningWay(c.getSigningWayName());
|
|
|
+ contractInfo.setContractStatus(c.getStatusName());
|
|
|
+ }
|
|
|
+ );
|
|
|
+ return contractInfo;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ detail.setContractInfoList(collect);
|
|
|
+
|
|
|
+ List<TransportUnitInfo> collect1 = list.stream().map(d -> {
|
|
|
+ TransportUnitInfo transportUnitInfo = new TransportUnitInfo();
|
|
|
+ transportUnitInfo.setEntId(d.getEntId());
|
|
|
+ transportUnitInfo.setFirmName(d.getFirmName());
|
|
|
+ transportUnitInfo.setTransportPrice(d.getTransportPrice());
|
|
|
+ transportUnitInfo.setContactsId(d.getContactsId());
|
|
|
+ transportUnitInfo.setContacts(d.getContacts());
|
|
|
+ transportUnitInfo.setPhone(d.getPhone());
|
|
|
+ return transportUnitInfo;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ detail.setUnitInfoList(collect1);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //todo 关联物流订单信息
|
|
|
return detail;
|
|
|
}
|
|
|
|
|
|
@@ -985,11 +1033,11 @@ public class KwoTradeOrderService {
|
|
|
throw new BusinessException("联系电话不能为空!");
|
|
|
}
|
|
|
});
|
|
|
- List<AddressInfo> addressInfos = param.getAddressInfo();
|
|
|
- if (CollectionUtils.isEmpty(addressInfos)) {
|
|
|
+ List<AddressInfoDto> addressInfoDtos = param.getAddressInfoDto();
|
|
|
+ if (CollectionUtils.isEmpty(addressInfoDtos)) {
|
|
|
throw new BusinessException("地址信息不能为空!");
|
|
|
}
|
|
|
- addressInfos.forEach(e -> {
|
|
|
+ addressInfoDtos.forEach(e -> {
|
|
|
if (StringUtils.isBlank(e.getAddressType())) {
|
|
|
throw new BusinessException("地址类型不能为空!");
|
|
|
}
|
|
|
@@ -1039,13 +1087,13 @@ public class KwoTradeOrderService {
|
|
|
if (amount.compareTo(totalLoadAmount) != 0) {
|
|
|
throw new BusinessException("分配卸货量总量与订单总量不相符!");
|
|
|
}
|
|
|
- List<AddressInfo> loadAddressInfo = param.getAddressInfo();
|
|
|
- long unloadCount = loadAddressInfo.stream().filter(e -> Objects.equals(OrderAddressTypeEnum.UNLOAD.getType(), e.getAddressType())).count();
|
|
|
+ List<AddressInfoDto> loadAddressInfoDto = param.getAddressInfoDto();
|
|
|
+ long unloadCount = loadAddressInfoDto.stream().filter(e -> Objects.equals(OrderAddressTypeEnum.UNLOAD.getType(), e.getAddressType())).count();
|
|
|
if (unloadCount > 0) {
|
|
|
throw new BusinessException("装货地址类型信息有误!");
|
|
|
}
|
|
|
- BigDecimal totalUnLoadAmount = loadAddressInfo.stream()
|
|
|
- .map(AddressInfo::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal totalUnLoadAmount = loadAddressInfoDto.stream()
|
|
|
+ .map(AddressInfoDto::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
if (amount.compareTo(totalUnLoadAmount) != 0) {
|
|
|
throw new BusinessException("分配装货量总量与订单总量不相符!");
|
|
|
}
|
|
|
@@ -1129,7 +1177,7 @@ public class KwoTradeOrderService {
|
|
|
tradeOrderAmountService.delByOrderIdAndAddressIds(param.getId(), oldLoadAddressIds);
|
|
|
}
|
|
|
AtomicInteger loadSort = new AtomicInteger(0);
|
|
|
- loadAddressInfo.forEach(e -> {
|
|
|
+ loadAddressInfoDto.forEach(e -> {
|
|
|
KwoTradeOrderAddress address = BeanUtil.copyProperties(e, KwoTradeOrderAddress.class);
|
|
|
address.setTOrderId(param.getId()).setTOrderNo(order.getTOrderNo())
|
|
|
.setSort(loadSort.getAndIncrement());
|
|
|
@@ -1674,33 +1722,33 @@ public class KwoTradeOrderService {
|
|
|
|
|
|
OrderListResVO vo = BeanUtil.copyProperties(e, OrderListResVO.class);
|
|
|
vo.setStatusLabel(statusMap.get(String.valueOf(e.getStatus())))
|
|
|
- .setTradingLabel(tradeMap.get(e.getTrading()))
|
|
|
- .setTrading(tradeMap.get(e.getTrading()))
|
|
|
- .setDeliveryTypeLabel(deliveryMap.get(e.getDeliveryType()))
|
|
|
- .setDeliveryType(deliveryMap.get(e.getDeliveryType()))
|
|
|
- .setPickupTypeLabel(pickupMap.get(e.getPickupType()))
|
|
|
- .setSourceLabel(sourceMap.get(e.getSource()))
|
|
|
- .setSource(sourceMap.get(e.getSource()))
|
|
|
- .setContractName(Objects.isNull(contract) ? null : contract.getContactName())
|
|
|
- .setContractSigningWay(Objects.isNull(contract) ? null : contract.getSigningWayName())
|
|
|
- .setGoodsName(Objects.isNull(goods) ? null : goods.getName())
|
|
|
- .setGoodsSpec(Objects.isNull(goods) ? null : goods.getSpec())
|
|
|
- .setGoodsTaxRate(Objects.isNull(goods) ? null : goods.getTaxRate())
|
|
|
- .setGoodsThumb(Objects.isNull(goods) ? null : goods.getThumb())
|
|
|
- .setWaitEntrustAmount(setScale(getWaitEntrustAmount(e.getAmount(), e.getEntrustAmount())))
|
|
|
- .setActualPrice(actualAmount.multiply(unitPrice).setScale(2, RoundingMode.HALF_UP))
|
|
|
- .setUnitPrice(setScale(e.getUnitPrice()))
|
|
|
- .setPrice(setScale(e.getPrice()))
|
|
|
- .setUnit(e.getUnit())
|
|
|
- .setUnitLabel(unitType == null ? e.getUnit() : (unitType.get(e.getUnit()) == null ? e.getUnit() : unitType.get(e.getUnit()).getLabel()))
|
|
|
- .setAmount(setScale(vo.getAmount()))
|
|
|
- .setEntrustAmount(setScale(e.getEntrustAmount()))
|
|
|
- .setActualAmount(setScale(e.getActualAmount()))
|
|
|
- .setCreateByName(Objects.isNull(userCache) ? null : userCache.getName())
|
|
|
- .setLoadName(loadName)
|
|
|
- .setLoadAddress(loadAddress)
|
|
|
- .setUnloadName(unloadName)
|
|
|
- .setUnloadAddress(unloadAddress);
|
|
|
+ .setTradingLabel(tradeMap.get(e.getTrading()))
|
|
|
+ .setTrading(tradeMap.get(e.getTrading()))
|
|
|
+ .setDeliveryTypeLabel(deliveryMap.get(e.getDeliveryType()))
|
|
|
+ .setDeliveryType(deliveryMap.get(e.getDeliveryType()))
|
|
|
+ .setPickupTypeLabel(pickupMap.get(e.getPickupType()))
|
|
|
+ .setSourceLabel(sourceMap.get(e.getSource()))
|
|
|
+ .setSource(sourceMap.get(e.getSource()))
|
|
|
+ .setContractName(Objects.isNull(contract) ? null : contract.getContactName())
|
|
|
+ .setContractSigningWay(Objects.isNull(contract) ? null : contract.getSigningWayName())
|
|
|
+ .setGoodsName(Objects.isNull(goods) ? null : goods.getName())
|
|
|
+ .setGoodsSpec(Objects.isNull(goods) ? null : goods.getSpec())
|
|
|
+ .setGoodsTaxRate(Objects.isNull(goods) ? null : goods.getTaxRate())
|
|
|
+ .setGoodsThumb(Objects.isNull(goods) ? null : goods.getThumb())
|
|
|
+ .setWaitEntrustAmount(setScale(getWaitEntrustAmount(e.getAmount(), e.getEntrustAmount())))
|
|
|
+ .setActualPrice(actualAmount.multiply(unitPrice).setScale(2, RoundingMode.HALF_UP))
|
|
|
+ .setUnitPrice(setScale(e.getUnitPrice()))
|
|
|
+ .setPrice(setScale(e.getPrice()))
|
|
|
+ .setUnit(e.getUnit())
|
|
|
+ .setUnitLabel(unitType == null ? e.getUnit() : (unitType.get(e.getUnit()) == null ? e.getUnit() : unitType.get(e.getUnit()).getLabel()))
|
|
|
+ .setAmount(setScale(vo.getAmount()))
|
|
|
+ .setEntrustAmount(setScale(e.getEntrustAmount()))
|
|
|
+ .setActualAmount(setScale(e.getActualAmount()))
|
|
|
+ .setCreateByName(Objects.isNull(userCache) ? null : userCache.getName())
|
|
|
+ .setLoadName(loadName)
|
|
|
+ .setLoadAddress(loadAddress)
|
|
|
+ .setUnloadName(unloadName)
|
|
|
+ .setUnloadAddress(unloadAddress);
|
|
|
result.add(vo);
|
|
|
});
|
|
|
return PageHelperUtil.getPageResult(new PageInfo<>(result), list, pageSize);
|
|
|
@@ -1741,8 +1789,12 @@ public class KwoTradeOrderService {
|
|
|
}
|
|
|
String keywords = params.getKeywords();
|
|
|
if (StringUtils.isNotBlank(keywords)) {
|
|
|
- List<Long> goodIds = goodsInfoService.getGoodsByGoodsNameAndTaxRate(keywords, null);
|
|
|
- dto.setGoodIds(goodIds);
|
|
|
+ List<SysDictResDto> sysDictResDtos = remoteSystemService.queryGoodsDict(keywords);
|
|
|
+ List<String> collect = new ArrayList<>();
|
|
|
+ if (CollUtil.isNotEmpty(sysDictResDtos)) {
|
|
|
+ collect = sysDictResDtos.stream().map(SysDictResDto::getValue).distinct().collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ dto.setGoodIds(goodsInfoService.getGoodsByPara(keywords, collect, keywords));
|
|
|
}
|
|
|
return dto;
|
|
|
}
|
|
|
@@ -1993,4 +2045,319 @@ public class KwoTradeOrderService {
|
|
|
List<OrderListResDTO> list = kwoTradeOrderMapper.tradeOrderContractList(dto, contractIds);
|
|
|
return buildResult(list, params.getPageSize());
|
|
|
}
|
|
|
+
|
|
|
+ public List<Long> querySignGoods(Long entId) {
|
|
|
+ return kwoTradeOrderMapper.selectGoodsId(entId);
|
|
|
+ }
|
|
|
+
|
|
|
+ public List<OrderSaleVo> queryRecentSale(LocalDateTime start, LocalDateTime end) {
|
|
|
+ return kwoTradeOrderMapper.querySaleOrder(start, end);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 新增贸易订单
|
|
|
+ *
|
|
|
+ * @param tradeOrderParam
|
|
|
+ */
|
|
|
+ public void addTradeOrder(TradeOrderParam tradeOrderParam) {
|
|
|
+ KwoTradeOrder order = new KwoTradeOrder();
|
|
|
+ order.setId(new IdWorker(1).nextId());
|
|
|
+ //商品信息
|
|
|
+ KwpGoods goodsById = goodsInfoService.getGoodsById(tradeOrderParam.getGoodsId());
|
|
|
+
|
|
|
+ TradeContractResDto tradeContractResDto = checkPara(tradeOrderParam, order, goodsById);
|
|
|
+ //商品地址信息
|
|
|
+ AddressInfoDetail goodsAddress = goodsInfoService.getGoodsAddress(tradeOrderParam.getGoodsId());
|
|
|
+ if (Objects.isNull(goodsAddress)) {
|
|
|
+ throw new BusinessException("商品发货地址信息不存在");
|
|
|
+ }
|
|
|
+ kwoTradeOrderMapper.insert(order);//贸易订单
|
|
|
+
|
|
|
+ GoodsInfoDto goodsInfoDto = tradeContractResDto.getGoodsInfoDto();//贸易合同,下合同关联的商品信息
|
|
|
+ KwoTradeOrderGoods kwoTradeOrderGoods = new KwoTradeOrderGoods();
|
|
|
+ kwoTradeOrderGoods.setId(new IdWorker(1).nextId());
|
|
|
+ kwoTradeOrderGoods.setTOrderId(order.getId());
|
|
|
+ kwoTradeOrderGoods.setTOrderNo(order.getTOrderNo());
|
|
|
+ kwoTradeOrderGoods.setGoodsId(tradeOrderParam.getGoodsId());
|
|
|
+ kwoTradeOrderGoods.setGoodsType(goodsById.getGoodsType());
|
|
|
+ kwoTradeOrderGoods.setSkuId(goodsInfoDto.getSkuId());
|
|
|
+ kwoTradeOrderGoods.setUnit(goodsInfoDto.getUnit());
|
|
|
+ kwoTradeOrderGoods.setUnitPrice(goodsInfoDto.getPrice());
|
|
|
+ kwoTradeOrderGoods.setPriceRangeId(0L);//
|
|
|
+ kwoTradeOrderGoods.setGoodsName(goodsById.getName());
|
|
|
+ kwoTradeOrderGoods.setRemark("");
|
|
|
+ kwoTradeOrderGoods.setStatus(0);
|
|
|
+ kwoTradeOrderGoods.setCreateBy(LoginUserHolder.getUserId());
|
|
|
+ kwoTradeOrderGoods.setCreateTime(new Date());
|
|
|
+ kwoTradeOrderGoods.setDelFlag(0);
|
|
|
+ kwoTradeOrderGoodsService.insert(kwoTradeOrderGoods);
|
|
|
+
|
|
|
+ KwoTradeOrderAddress kwoTradeOrderAddress = new KwoTradeOrderAddress();
|
|
|
+ kwoTradeOrderAddress.setId(new IdWorker(1).nextId());
|
|
|
+ kwoTradeOrderAddress.setTOrderId(order.getId());
|
|
|
+ kwoTradeOrderAddress.setTOrderNo(order.getTOrderNo());
|
|
|
+ kwoTradeOrderAddress.setAddressType("1");
|
|
|
+ kwoTradeOrderAddress.setName(goodsAddress.getName());
|
|
|
+ kwoTradeOrderAddress.setType(goodsAddress.getType());
|
|
|
+ kwoTradeOrderAddress.setContacts(goodsAddress.getContacts());
|
|
|
+ kwoTradeOrderAddress.setPhone(goodsAddress.getPhone());
|
|
|
+ kwoTradeOrderAddress.setCityCode(goodsAddress.getCityCode());
|
|
|
+ kwoTradeOrderAddress.setCityName(goodsAddress.getCityName());
|
|
|
+ kwoTradeOrderAddress.setDetailAddress(goodsAddress.getDetailAddress());
|
|
|
+ kwoTradeOrderAddress.setLat(goodsAddress.getLat());
|
|
|
+ kwoTradeOrderAddress.setLng(goodsAddress.getLng());
|
|
|
+ kwoTradeOrderAddress.setFence(goodsAddress.getFence());
|
|
|
+ kwoTradeOrderAddress.setSort(1);
|
|
|
+ kwoTradeOrderAddress.setRemark("");
|
|
|
+ kwoTradeOrderAddress.setStatus(0);
|
|
|
+ kwoTradeOrderAddress.setCreateBy(LoginUserHolder.getUserId());
|
|
|
+ kwoTradeOrderAddress.setCreateTime(new Date());
|
|
|
+ kwoTradeOrderAddress.setDelFlag(0);
|
|
|
+ kwoTradeOrderAddressService.add(kwoTradeOrderAddress);
|
|
|
+
|
|
|
+ AddressInfoPara addressInfo = tradeOrderParam.getAddressInfo();
|
|
|
+ KwoTradeOrderAddress kwoTradeOrderAddress2 = new KwoTradeOrderAddress();
|
|
|
+ kwoTradeOrderAddress2.setId(new IdWorker(1).nextId());
|
|
|
+ kwoTradeOrderAddress2.setTOrderId(order.getId());
|
|
|
+ kwoTradeOrderAddress2.setTOrderNo(order.getTOrderNo());
|
|
|
+ kwoTradeOrderAddress2.setAddressType("2");
|
|
|
+ kwoTradeOrderAddress2.setName(addressInfo.getName());
|
|
|
+ kwoTradeOrderAddress2.setType(addressInfo.getType());
|
|
|
+ kwoTradeOrderAddress2.setContacts(addressInfo.getContacts());
|
|
|
+ kwoTradeOrderAddress2.setPhone(addressInfo.getPhone());
|
|
|
+ kwoTradeOrderAddress2.setCityCode(addressInfo.getCityCode());
|
|
|
+ kwoTradeOrderAddress2.setCityName(addressInfo.getCityName());
|
|
|
+ kwoTradeOrderAddress2.setDetailAddress(addressInfo.getDetailAddress());
|
|
|
+ kwoTradeOrderAddress2.setLat(addressInfo.getLat());
|
|
|
+ kwoTradeOrderAddress2.setLng(addressInfo.getLng());
|
|
|
+ kwoTradeOrderAddress2.setFence(addressInfo.getFence());
|
|
|
+ kwoTradeOrderAddress2.setSort(2);
|
|
|
+ kwoTradeOrderAddress2.setRemark("");
|
|
|
+ kwoTradeOrderAddress2.setStatus(0);
|
|
|
+ kwoTradeOrderAddress2.setCreateBy(LoginUserHolder.getUserId());
|
|
|
+ kwoTradeOrderAddress2.setCreateTime(new Date());
|
|
|
+ kwoTradeOrderAddress2.setDelFlag(0);
|
|
|
+ kwoTradeOrderAddressService.add(kwoTradeOrderAddress2);
|
|
|
+
|
|
|
+ KwoTradeOrderContract kwoTradeOrderContract = new KwoTradeOrderContract();
|
|
|
+ kwoTradeOrderContract.setContractId(tradeOrderParam.getTradeContractId());
|
|
|
+ kwoTradeOrderContract.setContractNo(tradeOrderParam.getTradeContractName());
|
|
|
+ kwoTradeOrderContract.setTOrderId(order.getId());
|
|
|
+ kwoTradeOrderContract.setTOrderNo(order.getTOrderNo());
|
|
|
+ kwoTradeOrderContract.setId(new IdWorker(1).nextId());
|
|
|
+ kwoTradeOrderContract.setRemark("");
|
|
|
+ kwoTradeOrderContract.setStatus(0);
|
|
|
+ kwoTradeOrderContract.setCreateBy(LoginUserHolder.getUserId());
|
|
|
+ kwoTradeOrderContract.setCreateTime(new Date());
|
|
|
+ kwoTradeOrderContract.setDelFlag(0);
|
|
|
+ kwoTradeOrderContractService.insert(kwoTradeOrderContract);//贸易合同信息
|
|
|
+
|
|
|
+ List<LogisticsEntDto> logisticsContractId = tradeOrderParam.getLogisticsContractList();
|
|
|
+ if (Objects.equals(tradeContractResDto.getConsignment(), 1) && CollUtil.isNotEmpty(logisticsContractId)) {
|
|
|
+ for (LogisticsEntDto logisticsEntDto : logisticsContractId) {
|
|
|
+ KwoTradeOrderTransport kwoTradeOrderTransport = new KwoTradeOrderTransport();
|
|
|
+ kwoTradeOrderTransport.setId(new IdWorker(1).nextId());
|
|
|
+ kwoTradeOrderTransport.setTOrderId(order.getId());
|
|
|
+ kwoTradeOrderTransport.setTOrderNo(order.getTOrderNo());
|
|
|
+ kwoTradeOrderTransport.setEntId(logisticsEntDto.getEntId());
|
|
|
+ kwoTradeOrderTransport.setFirmName(logisticsEntDto.getEntName());
|
|
|
+ kwoTradeOrderTransport.setContractId(logisticsEntDto.getContractId());
|
|
|
+ kwoTradeOrderTransport.setContractNo(logisticsEntDto.getContractNo());
|
|
|
+ kwoTradeOrderTransport.setTransportPrice(logisticsEntDto.getTransportPrice());
|
|
|
+ kwoTradeOrderTransport.setContactsId(logisticsEntDto.getContactsId());
|
|
|
+ kwoTradeOrderTransport.setContacts(logisticsEntDto.getContacts());
|
|
|
+ kwoTradeOrderTransport.setPhone(logisticsEntDto.getPhone());
|
|
|
+ kwoTradeOrderTransport.setRemark("");
|
|
|
+ kwoTradeOrderTransport.setStatus(0);
|
|
|
+ kwoTradeOrderTransport.setCreateBy(LoginUserHolder.getUserId());
|
|
|
+ kwoTradeOrderTransport.setCreateTime(LocalDateTime.now());
|
|
|
+ kwoTradeOrderTransportService.insert(kwoTradeOrderTransport);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<TradeContractUnitDto> unitList = tradeContractResDto.getUnitList();
|
|
|
+
|
|
|
+ List<KwoTradeOrderUnit> list = new ArrayList<>();
|
|
|
+ unitList.forEach(e -> {
|
|
|
+ KwoTradeOrderUnit unit = BeanUtil.copyProperties(e, KwoTradeOrderUnit.class);
|
|
|
+ unit.setId(new IdWorker(1).nextId());
|
|
|
+ unit.setTOrderId(order.getId())
|
|
|
+ .setUnitType(e.getUnitType())
|
|
|
+ .setTOrderNo(order.getTOrderNo())
|
|
|
+ .setTopEntId(e.getEntId());
|
|
|
+ list.add(unit);
|
|
|
+ });
|
|
|
+ kwoTradeOrderUnitService.insertBatch(list);
|
|
|
+
|
|
|
+ //扣减库存
|
|
|
+ HttpResult updateResult = goodsInfoService.updateGoodsAmount(tradeOrderParam.getGoodsId(), tradeOrderParam.getAmount());
|
|
|
+ if (!Objects.equals(HttpStatus.SUCCESS_CODE, updateResult.getCode())) {
|
|
|
+ throw new BusinessException(updateResult.getMsg());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private TradeContractResDto checkPara(TradeOrderParam tradeOrderParam, KwoTradeOrder order, KwpGoods goodsById) {
|
|
|
+ if (Objects.isNull(goodsById) || Objects.equals(goodsById.getDelFlag(), Global.YES)) {
|
|
|
+ throw new BusinessException("商品信息不存在");
|
|
|
+ }
|
|
|
+ TradeContractResDto tradeContractResDto = remoteContractService.queryTradeContract(tradeOrderParam.getTradeContractId(), tradeOrderParam.getGoodsId());
|
|
|
+ if (Objects.isNull(tradeContractResDto)) {
|
|
|
+ throw new BusinessException("贸易合同不存在");
|
|
|
+ }
|
|
|
+ if (!Objects.equals(tradeContractResDto.getStatus(), Integer.parseInt(ContractStatusEnum.SIGNED.getCode()))) {
|
|
|
+ throw new BusinessException("当前贸易合同未签约");
|
|
|
+ }
|
|
|
+ Integer consignment = tradeContractResDto.getConsignment();
|
|
|
+ if (Objects.equals(consignment, 1) && CollUtil.isEmpty(tradeOrderParam.getLogisticsContractList())) {//采购方托运
|
|
|
+ throw new BusinessException("采购方托运时,物流合同信息不能为空");
|
|
|
+ }
|
|
|
+ GoodsInfoDto goodsInfoDto = tradeContractResDto.getGoodsInfoDto();
|
|
|
+ if (Objects.isNull(goodsInfoDto)) {
|
|
|
+ throw new BusinessException("当前贸易订单不存在交易商品");
|
|
|
+ }
|
|
|
+ order.setUnit(goodsInfoDto.getUnit());
|
|
|
+ order.setPrice(goodsInfoDto.getPrice());
|
|
|
+ order.setTrading(String.valueOf(tradeContractResDto.getTrading()));
|
|
|
+ order.setPickupType(String.valueOf(tradeContractResDto.getConsignment()));//来源于合同约束的托运方式
|
|
|
+ order.setDeliveryType("");
|
|
|
+ order.setActualAmount(new BigDecimal("0"));
|
|
|
+ order.setAssociateStatement(0);
|
|
|
+ order.setChargeType(tradeContractResDto.getUnloadWay());
|
|
|
+ order.setConsignmentWay(tradeContractResDto.getConsignment());
|
|
|
+ order.setEntId(LoginUserHolder.getEntId())
|
|
|
+ .setTOrderNo(getOrderNo())
|
|
|
+ .setAmount(tradeOrderParam.getAmount())
|
|
|
+ .setStartTime(DateUtils.localDateToDateStart(tradeOrderParam.getStartTime()))
|
|
|
+ .setEndTime(DateUtils.localDateToDateEnd(tradeOrderParam.getEndTime()))
|
|
|
+ .setSource(OrderSourceEnum.PURCHASE.getType())
|
|
|
+ .setStatus(OrderStatusEnum.WAIT_ACCEPTED.getCode())
|
|
|
+ .setRemark(tradeOrderParam.getRemark());
|
|
|
+ return tradeContractResDto;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 订单审核
|
|
|
+ *
|
|
|
+ * @param tradeOrderAuditParam
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Object auditOrder(TradeOrderAuditParam tradeOrderAuditParam) {
|
|
|
+ KwoTradeOrder kwoTradeOrder = kwoTradeOrderMapper.selectOne(new LambdaQueryWrapper<KwoTradeOrder>().eq(KwoTradeOrder::getId, tradeOrderAuditParam.getId()).eq(KwoTradeOrder::getDelFlag, 0));
|
|
|
+ if (Objects.isNull(kwoTradeOrder)) {
|
|
|
+ throw new BusinessException("贸易订单不存在");
|
|
|
+ }
|
|
|
+ KwoTradeOrderGoods byOrderId = kwoTradeOrderGoodsService.getByOrderId(kwoTradeOrder.getId());
|
|
|
+ if (Objects.isNull(byOrderId)) {
|
|
|
+ throw new BusinessException("贸易订单关联商品信息不存在");
|
|
|
+ }
|
|
|
+ List<KwoTradeOrderAddress> addressList = kwoTradeOrderAddressService.getByOrderId(kwoTradeOrder.getId());
|
|
|
+ if (CollUtil.isEmpty(addressList)) {
|
|
|
+ throw new BusinessException("贸易订单运输地址信息不存在");
|
|
|
+ }
|
|
|
+ Map<String, List<KwoTradeOrderAddress>> addressMap = addressList.stream().collect(Collectors.groupingBy(KwoTradeOrderAddress::getAddressType));
|
|
|
+ if (CollUtil.isEmpty(addressMap.get(String.valueOf(AddressTypeEnum.SHIPMENT.getCode()))) && CollUtil.isEmpty(addressMap.get(String.valueOf(AddressTypeEnum.BOTH.getCode())))) {
|
|
|
+ throw new BusinessException("装货地址信息不存在");
|
|
|
+ }
|
|
|
+ if (CollUtil.isEmpty(addressMap.get(String.valueOf(AddressTypeEnum.TAKE.getCode()))) && CollUtil.isEmpty(addressMap.get(String.valueOf(AddressTypeEnum.BOTH.getCode())))) {
|
|
|
+ throw new BusinessException("卸货地址信息不存在");
|
|
|
+ }
|
|
|
+ List<KwoTradeOrderUnit> orderUnits = kwoTradeOrderUnitService.getByOrderId(kwoTradeOrder.getId());
|
|
|
+ if (CollUtil.isEmpty(orderUnits)) {
|
|
|
+ throw new BusinessException("贸易订单企业信息不存在");
|
|
|
+ }
|
|
|
+ Map<String, KwoTradeOrderUnit> unitMap = orderUnits.stream().collect(Collectors.toMap(KwoTradeOrderUnit::getUnitType, e -> e, (a, b) -> a));
|
|
|
+ if (unitMap.keySet().size() < 2) {
|
|
|
+ throw new BusinessException("贸易订单企业信息缺失");
|
|
|
+ }
|
|
|
+ TradeContractResDto tradeContractResDto = remoteContractService.queryTradeContract(tradeOrderAuditParam.getTradeContractId(), tradeOrderAuditParam.getGoodsId());
|
|
|
+
|
|
|
+ List<LogisticsEntDto> logisticsContractId = tradeOrderAuditParam.getLogisticsContractList();
|
|
|
+ if (Objects.equals(tradeContractResDto.getConsignment(), 2) && CollUtil.isEmpty(logisticsContractId)) {
|
|
|
+ throw new BusinessException("卖方托运时,物流合同不能为空");
|
|
|
+ }
|
|
|
+ if (Objects.equals(tradeOrderAuditParam.getStatus(), 2)) {
|
|
|
+ KwoTradeOrderTrack kwoTradeOrderTrack = new KwoTradeOrderTrack();
|
|
|
+ kwoTradeOrderTrack.setTOrderId(kwoTradeOrder.getId());
|
|
|
+ kwoTradeOrderTrack.setTOrderNo(kwoTradeOrder.getTOrderNo());
|
|
|
+ kwoTradeOrderTrack.setId(new IdWorker(1).nextId());
|
|
|
+ kwoTradeOrderTrack.setRemark(tradeOrderAuditParam.getRemark());
|
|
|
+ kwoTradeOrderTrack.setStatus(tradeOrderAuditParam.getStatus());//2-拒绝
|
|
|
+ kwoTradeOrderTrack.setCreateBy(LoginUserHolder.getUserId());
|
|
|
+ kwoTradeOrderTrack.setCreateTime(new Date());
|
|
|
+ kwoTradeOrderTrack.setDelFlag(0);
|
|
|
+ kwoTradeOrderTrackService.insert(kwoTradeOrderTrack);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ KwoTradeOrderTrack kwoTradeOrderTrack = new KwoTradeOrderTrack();
|
|
|
+ kwoTradeOrderTrack.setTOrderId(kwoTradeOrder.getId());
|
|
|
+ kwoTradeOrderTrack.setTOrderNo(kwoTradeOrder.getTOrderNo());
|
|
|
+ kwoTradeOrderTrack.setId(new IdWorker(1).nextId());
|
|
|
+ kwoTradeOrderTrack.setRemark(tradeOrderAuditParam.getRemark());
|
|
|
+ kwoTradeOrderTrack.setStatus(tradeOrderAuditParam.getStatus());//1-通过
|
|
|
+ kwoTradeOrderTrack.setCreateBy(LoginUserHolder.getUserId());
|
|
|
+ kwoTradeOrderTrack.setCreateTime(new Date());
|
|
|
+ kwoTradeOrderTrack.setDelFlag(0);
|
|
|
+ kwoTradeOrderTrackService.insert(kwoTradeOrderTrack);
|
|
|
+ for (LogisticsEntDto logisticsEntDto : logisticsContractId) {
|
|
|
+ KwoTradeOrderTransport kwoTradeOrderTransport = new KwoTradeOrderTransport();
|
|
|
+ kwoTradeOrderTransport.setId(new IdWorker(1).nextId());
|
|
|
+ kwoTradeOrderTransport.setTOrderId(kwoTradeOrder.getId());
|
|
|
+ kwoTradeOrderTransport.setTOrderNo(kwoTradeOrder.getTOrderNo());
|
|
|
+ kwoTradeOrderTransport.setEntId(logisticsEntDto.getEntId());
|
|
|
+ kwoTradeOrderTransport.setFirmName(logisticsEntDto.getEntName());
|
|
|
+ kwoTradeOrderTransport.setContractId(logisticsEntDto.getContractId());
|
|
|
+ kwoTradeOrderTransport.setContractNo(logisticsEntDto.getContractNo());
|
|
|
+ kwoTradeOrderTransport.setTransportPrice(logisticsEntDto.getTransportPrice());
|
|
|
+ kwoTradeOrderTransport.setContactsId(logisticsEntDto.getContactsId());
|
|
|
+ kwoTradeOrderTransport.setContacts(logisticsEntDto.getContacts());
|
|
|
+ kwoTradeOrderTransport.setPhone(logisticsEntDto.getPhone());
|
|
|
+ kwoTradeOrderTransport.setRemark("");
|
|
|
+ kwoTradeOrderTransport.setStatus(0);
|
|
|
+ kwoTradeOrderTransport.setCreateBy(LoginUserHolder.getUserId());
|
|
|
+ kwoTradeOrderTransport.setCreateTime(LocalDateTime.now());
|
|
|
+ kwoTradeOrderTransportService.insert(kwoTradeOrderTransport);
|
|
|
+ }
|
|
|
+ //todo 通过后调用rpc
|
|
|
+ AddLogisticOrderParam addLogisticOrderParam = new AddLogisticOrderParam();
|
|
|
+ addLogisticOrderParam.setLogisticInfo(Lists.newArrayList());
|
|
|
+ addLogisticOrderParam.setTradeOrderId(kwoTradeOrder.getId());
|
|
|
+ addLogisticOrderParam.setTradeOrderNo(kwoTradeOrder.getTOrderNo());
|
|
|
+ if (Objects.equals(tradeContractResDto.getConsignment(), 1)) {//买方托运
|
|
|
+ KwoTradeOrderUnit kwoTradeOrderUnit = unitMap.get("1");//采购
|
|
|
+ if (Objects.nonNull(kwoTradeOrderUnit)) {
|
|
|
+ addLogisticOrderParam.setConsignCompany(kwoTradeOrderUnit.getFirmName());
|
|
|
+ addLogisticOrderParam.setConsignCompanyId(kwoTradeOrderUnit.getEntId());
|
|
|
+ addLogisticOrderParam.setConsignContactPhone(kwoTradeOrderUnit.getPhone());
|
|
|
+ addLogisticOrderParam.setConsignContacts(kwoTradeOrderUnit.getContacts());
|
|
|
+ addLogisticOrderParam.setConsignContactsId(kwoTradeOrderUnit.getContactsId());
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ KwoTradeOrderUnit kwoTradeOrderUnit = unitMap.get("2");//采购
|
|
|
+ if (Objects.nonNull(kwoTradeOrderUnit)) {
|
|
|
+ addLogisticOrderParam.setConsignCompany(kwoTradeOrderUnit.getFirmName());
|
|
|
+ addLogisticOrderParam.setConsignCompanyId(kwoTradeOrderUnit.getEntId());
|
|
|
+ addLogisticOrderParam.setConsignContactPhone(kwoTradeOrderUnit.getPhone());
|
|
|
+ addLogisticOrderParam.setConsignContacts(kwoTradeOrderUnit.getContacts());
|
|
|
+ addLogisticOrderParam.setConsignContactsId(kwoTradeOrderUnit.getContactsId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ addLogisticOrderParam.setGoodsId(byOrderId.getGoodsId());
|
|
|
+ addLogisticOrderParam.setGoodsName(byOrderId.getGoodsName());
|
|
|
+ addLogisticOrderParam.setGoodsType(byOrderId.getGoodsType());
|
|
|
+ addLogisticOrderParam.setGoodsPrice(byOrderId.getUnitPrice());
|
|
|
+ addLogisticOrderParam.setGoodsPriceUnit(byOrderId.getUnit());
|
|
|
+ List<KwoTradeOrderAddress> kwoTradeOrderAddresses = addressMap.get(String.valueOf(AddressTypeEnum.SHIPMENT.getCode()));
|
|
|
+ KwoTradeOrderAddress kwoTradeOrderAddress = kwoTradeOrderAddresses.get(0);
|
|
|
+ addLogisticOrderParam.setLoadName(kwoTradeOrderAddress.getName());
|
|
|
+ addLogisticOrderParam.setLoadCityCode(kwoTradeOrderAddress.getCityCode());
|
|
|
+ addLogisticOrderParam.setLoadCityName(kwoTradeOrderAddress.getCityName());
|
|
|
+ addLogisticOrderParam.setLoadContacts(kwoTradeOrderAddress.getContacts());
|
|
|
+ addLogisticOrderParam.setLoadPhone(kwoTradeOrderAddress.getPhone());
|
|
|
+ addLogisticOrderParam.setLoadDetailAddress(kwoTradeOrderAddress.getDetailAddress());
|
|
|
+
|
|
|
+ transportRemoteService.addLogisticOrder(addLogisticOrderParam);
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
}
|