|
|
@@ -1,5 +1,6 @@
|
|
|
package com.sckw.transport.service;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
@@ -14,21 +15,25 @@ import com.sckw.core.web.constant.HttpStatus;
|
|
|
import com.sckw.core.web.context.LoginUserHolder;
|
|
|
import com.sckw.core.web.response.HttpResult;
|
|
|
import com.sckw.excel.utils.DateUtil;
|
|
|
+import com.sckw.mongo.enums.BusinessTypeEnum;
|
|
|
+import com.sckw.mongo.model.SckwLogisticsOrder;
|
|
|
import com.sckw.order.api.dubbo.TradeOrderInfoService;
|
|
|
-import com.sckw.order.api.model.OrderDetailRes;
|
|
|
-import com.sckw.order.api.model.UpdateOrderAmountParam;
|
|
|
+import com.sckw.order.api.model.CreateOrCancelLogisticsOrderParam;
|
|
|
+import com.sckw.stream.model.SckwBusSum;
|
|
|
import com.sckw.system.api.RemoteSystemService;
|
|
|
import com.sckw.system.api.model.dto.res.SysDictResDto;
|
|
|
-import com.sckw.transport.api.model.dto.vo.LogisticsOrderDTO;
|
|
|
+import com.sckw.transport.api.model.dto.LogisticsOrderDTO;
|
|
|
import com.sckw.transport.dao.*;
|
|
|
import com.sckw.transport.model.*;
|
|
|
import com.sckw.transport.model.dto.CancelOrderDTO;
|
|
|
import com.sckw.transport.model.dto.DocumentParamDTO;
|
|
|
import com.sckw.transport.model.param.LogisticsOrderParam;
|
|
|
import com.sckw.transport.model.vo.OrderDetailVO;
|
|
|
+import jakarta.annotation.Resource;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.cloud.stream.function.StreamBridge;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.ObjectUtils;
|
|
|
@@ -78,6 +83,9 @@ public class TransportCommonService {
|
|
|
@Autowired
|
|
|
public KwtWaybillOrderMapper waybillOrderMapper;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private StreamBridge streamBridge;
|
|
|
+
|
|
|
/**
|
|
|
* 查看订单详情
|
|
|
*
|
|
|
@@ -218,20 +226,35 @@ public class TransportCommonService {
|
|
|
/**并不存在分包,撤销数据回归到贸易订单,[待接单状态]下才能撤销托运*/
|
|
|
/**调用dubbo 修改数值*/
|
|
|
Long tOrderId = logisticsOrder.getTOrderId();
|
|
|
- OrderDetailRes orderDetailRes = tradeOrderInfoService.getOrderDetailById(tOrderId);
|
|
|
- UpdateOrderAmountParam param = new UpdateOrderAmountParam();
|
|
|
+ CreateOrCancelLogisticsOrderParam param = new CreateOrCancelLogisticsOrderParam();
|
|
|
+ param.setEntrustAmount(logisticsOrder.getAmount().negate());
|
|
|
+ param.setUpdateBy(LoginUserHolder.getUserId());
|
|
|
+ param.setUpdateByName(LoginUserHolder.getUserName());
|
|
|
param.setTOrderId(tOrderId);
|
|
|
- param.setActualAmount(orderDetailRes.getActualAmount().add(logisticsOrder.getLoadAmount()));
|
|
|
- param.setEntrustAmount(orderDetailRes.getEntrustAmount().add(logisticsOrder.getEntrustAmount().subtract(logisticsOrder.getLoadAmount())));
|
|
|
- tradeOrderInfoService.updateOrderAmount(param);
|
|
|
- logisticsOrder.setDelFlag(1);
|
|
|
- logisticsOrder.setUpdateTime(new Date());
|
|
|
- logisticsOrder.setUpdateBy(LoginUserHolder.getUserId());
|
|
|
+ HttpResult httpResult = tradeOrderInfoService.createOrCancelLogisticsOrder(param);
|
|
|
+ if (HttpStatus.SUCCESS_CODE != httpResult.getCode()) {
|
|
|
+ log.info("撤销托运错误:,请求参数:{},响应信息:{}",JSONObject.toJSONString(param),JSONObject.toJSONString(httpResult));
|
|
|
+ }
|
|
|
logisticsOrderMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrder>()
|
|
|
.eq(KwtLogisticsOrder::getId, logisticsOrder.getId())
|
|
|
- .set(KwtLogisticsOrder::getDelFlag, NumberConstant.ONE)
|
|
|
+ .set(KwtLogisticsOrder::getStatus, LogisticsOrderEnum.CANCEL_ORDER.getCode())
|
|
|
.set(KwtLogisticsOrder::getUpdateBy, LoginUserHolder.getUserId())
|
|
|
.set(KwtLogisticsOrder::getUpdateTime, new Date()));
|
|
|
+ //mongodb更新
|
|
|
+ SckwLogisticsOrder order = new SckwLogisticsOrder();
|
|
|
+ order.set_id(logisticsOrder.getId());
|
|
|
+ order.setLOrderId(logisticsOrder.getId());
|
|
|
+ order.setStatus(LogisticsOrderEnum.CANCEL_ORDER.getStatus());
|
|
|
+ order.setUpdateTime(new Date());
|
|
|
+ order.setUpdateByName(LoginUserHolder.getUserName());
|
|
|
+ SckwBusSum busSum = new SckwBusSum();
|
|
|
+ //业务汇总类型
|
|
|
+ busSum.setBusSumType(BusinessTypeEnum.LOGISTICS_ORDER_TYPE.getName());
|
|
|
+ //操作对象(1新增/2修改)
|
|
|
+ busSum.setMethod(NumberConstant.TWO);
|
|
|
+ //业务汇总数据对象
|
|
|
+ busSum.setObject(order);
|
|
|
+ streamBridge.send("sckw-busSum", JSON.toJSONString(busSum));
|
|
|
} else {
|
|
|
/**即代表存在分包,当次是属于被分包.需要将数据回归到上游数据。*/
|
|
|
Long pid = logisticsOrder.getPid();
|
|
|
@@ -241,9 +264,9 @@ public class TransportCommonService {
|
|
|
//上游分配量
|
|
|
BigDecimal amount = logisticsOrder.getAmount();
|
|
|
//已经完成的量
|
|
|
- BigDecimal unloadAmount = logisticsOrder.getUnloadAmount();
|
|
|
+ BigDecimal loadAmount = logisticsOrder.getLoadAmount();
|
|
|
//未完成的量
|
|
|
- BigDecimal subtract = amount.subtract(unloadAmount);
|
|
|
+ BigDecimal subtract = amount.subtract(loadAmount);
|
|
|
//.setScale(2,BigDecimal.ROUND_HALF_DOWN)
|
|
|
BigDecimal add = order.getSubcontractAmount().add(subtract);
|
|
|
logisticsOrderMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrder>()
|
|
|
@@ -255,9 +278,38 @@ public class TransportCommonService {
|
|
|
/**下游订单进行删除*/
|
|
|
logisticsOrderMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrder>()
|
|
|
.eq(KwtLogisticsOrder::getId, logisticsOrder.getId())
|
|
|
- .set(KwtLogisticsOrder::getDelFlag, NumberConstant.ONE)
|
|
|
+ .set(KwtLogisticsOrder::getStatus, LogisticsOrderEnum.CANCEL_ORDER.getCode())
|
|
|
.set(KwtLogisticsOrder::getUpdateBy, LoginUserHolder.getUserId())
|
|
|
.set(KwtLogisticsOrder::getUpdateTime, new Date()));
|
|
|
+ /**mongodb更新*/
|
|
|
+ SckwLogisticsOrder sckwLogisticsOrder = new SckwLogisticsOrder();
|
|
|
+ sckwLogisticsOrder.set_id(logisticsOrder.getId());
|
|
|
+ sckwLogisticsOrder.setLOrderId(logisticsOrder.getId());
|
|
|
+ sckwLogisticsOrder.setStatus(LogisticsOrderEnum.CANCEL_ORDER.getStatus());
|
|
|
+ sckwLogisticsOrder.setUpdateTime(new Date());
|
|
|
+ sckwLogisticsOrder.setUpdateByName(LoginUserHolder.getUserName());
|
|
|
+ SckwBusSum busSum = new SckwBusSum();
|
|
|
+ //业务汇总类型
|
|
|
+ busSum.setBusSumType(BusinessTypeEnum.LOGISTICS_ORDER_TYPE.getName());
|
|
|
+ //操作对象(1新增/2修改)
|
|
|
+ busSum.setMethod(NumberConstant.TWO);
|
|
|
+ //业务汇总数据对象
|
|
|
+ busSum.setObject(sckwLogisticsOrder);
|
|
|
+ streamBridge.send("sckw-busSum", JSON.toJSONString(busSum));
|
|
|
+ SckwLogisticsOrder logisticsOrder1 = new SckwLogisticsOrder();
|
|
|
+ logisticsOrder1.set_id(logisticsOrder.getId());
|
|
|
+ logisticsOrder1.setLOrderId(logisticsOrder.getId());
|
|
|
+ logisticsOrder1.setStatus(LogisticsOrderEnum.CANCEL_ORDER.getStatus());
|
|
|
+ logisticsOrder1.setUpdateTime(new Date());
|
|
|
+ logisticsOrder1.setUpdateByName(LoginUserHolder.getUserName());
|
|
|
+ SckwBusSum busSum1 = new SckwBusSum();
|
|
|
+ //业务汇总类型
|
|
|
+ busSum1.setBusSumType(BusinessTypeEnum.LOGISTICS_ORDER_TYPE.getName());
|
|
|
+ //操作对象(1新增/2修改)
|
|
|
+ busSum1.setMethod(NumberConstant.TWO);
|
|
|
+ //业务汇总数据对象
|
|
|
+ busSum1.setObject(logisticsOrder);
|
|
|
+ streamBridge.send("sckw-busSum", JSON.toJSONString(busSum));
|
|
|
}
|
|
|
return result;
|
|
|
}
|