|
|
@@ -1,16 +1,21 @@
|
|
|
package com.sckw.order.dubbo;
|
|
|
|
|
|
import com.alibaba.fastjson2.JSON;
|
|
|
+import com.google.common.collect.Lists;
|
|
|
import com.sckw.core.common.enums.enums.DictEnum;
|
|
|
import com.sckw.core.utils.BeanUtils;
|
|
|
+import com.sckw.core.utils.CollectionUtils;
|
|
|
import com.sckw.core.web.response.HttpResult;
|
|
|
import com.sckw.mongo.model.SckwTradeOrder;
|
|
|
import com.sckw.order.api.dubbo.TradeOrderInfoService;
|
|
|
+import com.sckw.order.api.model.ContractSignCompletedParam;
|
|
|
import com.sckw.order.api.model.OrderDetailRes;
|
|
|
import com.sckw.order.api.model.UpdateOrderAmountParam;
|
|
|
import com.sckw.order.api.model.UpdateOrderStatusParam;
|
|
|
import com.sckw.order.model.KwoTradeOrder;
|
|
|
+import com.sckw.order.model.KwoTradeOrderContract;
|
|
|
import com.sckw.order.model.KwoTradeOrderTrack;
|
|
|
+import com.sckw.order.serivce.KwoTradeOrderContractService;
|
|
|
import com.sckw.order.serivce.KwoTradeOrderService;
|
|
|
import com.sckw.order.serivce.KwoTradeOrderTrackService;
|
|
|
import com.sckw.redis.constant.RedisConstant;
|
|
|
@@ -20,9 +25,11 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.dubbo.config.annotation.DubboService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.cloud.stream.function.StreamBridge;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
|
|
|
/**
|
|
|
@@ -40,6 +47,8 @@ public class TradeOrderInfoServiceImpl implements TradeOrderInfoService {
|
|
|
private StreamBridge streamBridge;
|
|
|
@Autowired
|
|
|
private KwoTradeOrderTrackService kwoTradeOrderTrackService;
|
|
|
+ @Autowired
|
|
|
+ private KwoTradeOrderContractService kwoTradeOrderContractService;
|
|
|
|
|
|
|
|
|
@Override
|
|
|
@@ -48,6 +57,7 @@ public class TradeOrderInfoServiceImpl implements TradeOrderInfoService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public HttpResult updateOrderStatus(UpdateOrderStatusParam param) {
|
|
|
KwoTradeOrder order = kwoTradeOrderService.getById(param.getTOrderId());
|
|
|
if (Objects.isNull(order)) {
|
|
|
@@ -82,6 +92,7 @@ public class TradeOrderInfoServiceImpl implements TradeOrderInfoService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public HttpResult updateOrderAmount(UpdateOrderAmountParam param) {
|
|
|
Long id = param.getTOrderId();
|
|
|
Long updateBy = param.getUpdateBy();
|
|
|
@@ -129,6 +140,42 @@ public class TradeOrderInfoServiceImpl implements TradeOrderInfoService {
|
|
|
return HttpResult.ok();
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void contractSignCompleted(ContractSignCompletedParam param) {
|
|
|
+ Long contractId = param.getContractId();
|
|
|
+ Long updateBy = param.getUpdateBy();
|
|
|
+ List<KwoTradeOrderContract> contracts = kwoTradeOrderContractService.getByContractId(contractId);
|
|
|
+ if (CollectionUtils.isEmpty(contracts)) {
|
|
|
+ log.info("合同:{}无相关联待签约的贸易订单", contractId);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<Long> tOrderIds = contracts.stream().map(KwoTradeOrderContract::getTOrderId).toList();
|
|
|
+ List<KwoTradeOrder> orders = kwoTradeOrderService.getWaitSignByIds(tOrderIds);
|
|
|
+ if (CollectionUtils.isEmpty(orders)) {
|
|
|
+ log.info("合同:{}无相关联待签约的贸易订单", contractId);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<KwoTradeOrderTrack> tracks = Lists.newArrayList();
|
|
|
+ List<SckwTradeOrder> tradeOrders = Lists.newArrayList();
|
|
|
+ List<Long> ids = orders.stream().map(KwoTradeOrder::getId).toList();
|
|
|
+ kwoTradeOrderService.contractCompletedUpdate(ids, updateBy);
|
|
|
+ orders.forEach(e -> {
|
|
|
+ KwoTradeOrderTrack track = new KwoTradeOrderTrack();
|
|
|
+ track.setTOrderId(e.getId()).setTOrderNo(e.getTOrderNo()).setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_4.getValue()))
|
|
|
+ .setCreateBy(updateBy).setUpdateBy(updateBy);
|
|
|
+ tracks.add(track);
|
|
|
+ SckwTradeOrder updateParam = new SckwTradeOrder();
|
|
|
+ updateParam.setTOrderId(e.getId()).setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_4.getValue()))
|
|
|
+ .setUpdateBy(updateBy).setUpdateByName(param.getUpdateByName()).setUpdateTime(new Date());
|
|
|
+ tradeOrders.add(updateParam);
|
|
|
+ });
|
|
|
+ kwoTradeOrderTrackService.insertBatch(tracks);
|
|
|
+ tradeOrders.forEach(e -> {
|
|
|
+ saveMongoDb(3, e);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @desc: mq保存mongodb
|
|
|
* @author: yzc
|