Explorar o código

1.新增物流订单拒绝接单
2.新增物流订单撤销托运
3.新增贸易订单撤销托运

lengfaqiang hai 1 ano
pai
achega
9abcc132f0

+ 28 - 5
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtAcceptCarriageOrderService.java

@@ -32,11 +32,9 @@ import com.sckw.mongo.enums.BusinessTypeEnum;
 import com.sckw.mongo.model.SckwLogisticsOrder;
 import com.sckw.mongo.model.SckwWaybillOrder;
 import com.sckw.mongo.model.TableTops;
+import com.sckw.order.api.dubbo.RemoteTradeOrderAmountService;
 import com.sckw.order.api.dubbo.TradeOrderInfoService;
-import com.sckw.order.api.model.CompleteLogisticsOrderParam;
-import com.sckw.order.api.model.GoodsLoadingParam;
-import com.sckw.order.api.model.OrderDetailRes;
-import com.sckw.order.api.model.UnitInfoDetailRes;
+import com.sckw.order.api.model.*;
 import com.sckw.payment.api.dubbo.PaymentDubboService;
 import com.sckw.payment.api.model.dto.SettlementMoney;
 import com.sckw.product.api.dubbo.GoodsInfoService;
@@ -59,6 +57,7 @@ import com.sckw.transport.model.param.DriverParam;
 import com.sckw.transport.model.param.LogisticsOrderStatisticsParam;
 import com.sckw.transport.model.vo.*;
 import com.sckw.transport.model.vo.execlVo.AcceptCarriageOrderExcelVo;
+import io.seata.spring.annotation.GlobalTransactional;
 import jakarta.annotation.Resource;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -98,6 +97,9 @@ public class KwtAcceptCarriageOrderService {
     @DubboReference(version = "1.0.0", group = "design", check = false, timeout = 8000)
     TradeOrderInfoService tradeOrderInfoService;
 
+    @DubboReference(version = "1.0.0", group = "design", check = false, timeout = 8000)
+    RemoteTradeOrderAmountService tradeOrderAmountService;
+
     @DubboReference(version = "1.0.0", group = "design", check = false, timeout = 8000)
     GoodsInfoService goodsInfoService;
 
@@ -682,7 +684,8 @@ public class KwtAcceptCarriageOrderService {
      * @param orderDTO
      * @return
      */
-    @Transactional(rollbackFor = Exception.class)
+//    @Transactional(rollbackFor = Exception.class)
+    @GlobalTransactional
     public HttpResult orderTaking(OrderTakingDTO orderDTO) {
         String key = String.format(RedisConstant.LOGISTICS_ORDER_TAKING_KEY, orderDTO.getLOrderId());
         log.info("接单操作接收数据:{}", JSONObject.toJSONString(orderDTO));
@@ -831,6 +834,26 @@ public class KwtAcceptCarriageOrderService {
                                 log.info("{}拒绝接单->贸易订单失败!,返回信息:{}", "id:" + logisticsOrder.getTOrderId() + "orderNo" + logisticsOrder.getTOrderNo(), JSONObject.toJSONString(result1));
                                 throw new BusinessException("{" + logisticsOrder.getTOrderNo() + "} 拒绝接单->贸易订单失败!");
                             }
+                            Long id = logisticsOrder.getId();
+                            List<LogisticsOrderCancelAmountVo> logisticsOrderCancelAmountVos = logisticsOrderAmountMapper.cancelOrderToAmountByOrderId(id, NumberConstant.ONE);
+                            if (CollectionUtils.isNotEmpty(logisticsOrderCancelAmountVos)) {
+                                logisticsOrderCancelAmountVos.forEach(cancelAmountVos -> {
+                                    Long tOrderId = cancelAmountVos.getTOrderId();
+                                    Long tOrderAddressId = cancelAmountVos.getTOrderAddressId();
+                                    UpdateAddressEntrustAmountParam param = new UpdateAddressEntrustAmountParam();
+                                    param.setTOrderId(tOrderId);
+                                    param.setTAddressId(tOrderAddressId);
+                                    param.setEntrustAmount(cancelAmountVos.getAmount().negate());
+                                    param.setUpdateBy(LoginUserHolder.getUserId());
+                                    param.setUpdateByName(LoginUserHolder.getUserName());
+                                    HttpResult httpResult1 = tradeOrderAmountService.updateAddressEntrustAmount(param);
+                                    if (HttpStatus.SUCCESS_CODE != httpResult1.getCode()) {
+                                        log.info("拒绝接单->还原地址的分配量错误:,请求参数:{},{},响应信息:{}",
+                                                logisticsOrder.getTOrderId(), JSONObject.toJSONString(param), JSONObject.toJSONString(httpResult1));
+                                        throw new BusinessException("拒绝接单->还原地址的分配量错误:" + httpResult1.getMsg());
+                                    }
+                                });
+                            }
                         }
                     }
 

+ 53 - 6
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtLogisticsConsignmentService.java

@@ -30,6 +30,7 @@ import com.sckw.fleet.api.RemoteFleetService;
 import com.sckw.fleet.api.model.vo.RTruckVo;
 import com.sckw.mongo.enums.BusinessTypeEnum;
 import com.sckw.mongo.model.SckwLogisticsOrder;
+import com.sckw.order.api.dubbo.RemoteTradeOrderAmountService;
 import com.sckw.order.api.dubbo.TradeOrderInfoService;
 import com.sckw.order.api.model.*;
 import com.sckw.product.api.dubbo.GoodsInfoService;
@@ -46,10 +47,7 @@ import com.sckw.transport.model.*;
 import com.sckw.transport.model.dto.*;
 import com.sckw.transport.model.param.AddLogisticsOrderParam;
 import com.sckw.transport.model.param.LogisticsConsignmentParam;
-import com.sckw.transport.model.vo.OrderFinishVO;
-import com.sckw.transport.model.vo.PurchaseLogisticOrderExcelVo;
-import com.sckw.transport.model.vo.SellLogisticOrderExcelVo;
-import com.sckw.transport.model.vo.WaybillCountVo;
+import com.sckw.transport.model.vo.*;
 import io.seata.spring.annotation.GlobalTransactional;
 import jakarta.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
@@ -105,6 +103,9 @@ public class KwtLogisticsConsignmentService {
     @DubboReference(version = "1.0.0", group = "design", check = false, timeout = 80000)
     TradeOrderInfoService tradeOrderInfoService;
 
+    @DubboReference(version = "1.0.0", group = "design", check = false, timeout = 80000)
+    RemoteTradeOrderAmountService tradeOrderAmountService;
+
     @DubboReference(version = "1.0.0", group = "design", check = false, timeout = 6000)
     RemoteFleetService remoteFleetService;
 
@@ -120,6 +121,9 @@ public class KwtLogisticsConsignmentService {
     @Autowired
     public KwtLogisticsOrderContractMapper kwtLogisticsOrderContractMapper;
 
+    @Autowired
+    public KwtLogisticsOrderAmountMapper logisticsOrderAmountMapper;
+
     @Autowired
     public KwtLogisticsOrderMapper kwtLogisticsOrderMapper;
 
@@ -1116,7 +1120,8 @@ public class KwtLogisticsConsignmentService {
      * @param type   单据操作类型
      * @return
      */
-    @Transactional(rollbackFor = Exception.class)
+//    @Transactional(rollbackFor = Exception.class)
+    @GlobalTransactional
     public HttpResult cancelConsign(List<String> ids, String remark, String type) {
         if (CollectionUtils.isEmpty(ids) || ids.size() < NumberConstant.ONE) {
             throw new BusinessException("单据id不能为空");
@@ -1173,6 +1178,28 @@ public class KwtLogisticsConsignmentService {
             HttpResult httpResult = tradeOrderInfoService.createOrCancelLogisticsOrderV1(LoginUserHolder.getUserId(), LoginUserHolder.getUserName(), kwtLogisticsOrder.getTOrderId(), goodsLoading);
             log.info("销售订单撤销托运-溯源贸易订单请求数据:{}[],返回数据:{}", kwtLogisticsOrder.getTOrderId(), JSONObject.toJSONString(goodsLoading), JSONObject.toJSONString(httpResult));
             if (HttpStatus.SUCCESS_CODE == httpResult.getCode()) {
+
+                Long logisticsOrderId =Long.parseLong(s);
+                List<LogisticsOrderCancelAmountVo> logisticsOrderCancelAmountVos = logisticsOrderAmountMapper.cancelOrderToAmountByOrderId(logisticsOrderId, NumberConstant.ONE);
+                if (CollectionUtils.isNotEmpty(logisticsOrderCancelAmountVos)) {
+                    logisticsOrderCancelAmountVos.forEach(cancelAmountVos -> {
+                        Long tOrderId = cancelAmountVos.getTOrderId();
+                        Long tOrderAddressId = cancelAmountVos.getTOrderAddressId();
+                        UpdateAddressEntrustAmountParam param = new UpdateAddressEntrustAmountParam();
+                        param.setTOrderId(tOrderId);
+                        param.setTAddressId(tOrderAddressId);
+                        param.setEntrustAmount(cancelAmountVos.getAmount().negate());
+                        param.setUpdateBy(LoginUserHolder.getUserId());
+                        param.setUpdateByName(LoginUserHolder.getUserName());
+                        HttpResult httpResult1 = tradeOrderAmountService.updateAddressEntrustAmount(param);
+                        if (HttpStatus.SUCCESS_CODE != httpResult1.getCode()) {
+                            log.info("销售订单-撤销托运还原地址的分配量错误:,请求参数:{},{},响应信息:{}",
+                                    kwtLogisticsOrder.getTOrderId(), JSONObject.toJSONString(param), JSONObject.toJSONString(httpResult1));
+                            throw new BusinessException("销售订单-撤销托运还原地址的分配量错误:" + httpResult1.getMsg());
+                        }
+                    });
+                }
+
 //                    kwtLogisticsOrder.setDelFlag(NumberConstant.ONE);
                 kwtLogisticsOrder.setUpdateTime(new Date());
                 kwtLogisticsOrder.setUpdateBy(LoginUserHolder.getUserId());
@@ -1275,9 +1302,29 @@ public class KwtLogisticsConsignmentService {
             List<GoodsLoadingParam> goodsLoading = logisticsOrderGoodsService.goodsLoadingParams(kwtLogisticsOrder, false);
 //            HttpResult httpResult = tradeOrderInfoService.createOrCancelLogisticsOrderV1(kwtLogisticsOrder.getTOrderId(), goodsLoading);
             HttpResult httpResult = tradeOrderInfoService.createOrCancelLogisticsOrderV1(LoginUserHolder.getUserId(), LoginUserHolder.getUserName(), kwtLogisticsOrder.getTOrderId(), goodsLoading);
-
             log.info("采购订单撤销托运-溯源贸易订单请求数据:{}[],返回数据:{}", kwtLogisticsOrder.getTOrderId(), JSONObject.toJSONString(goodsLoading), JSONObject.toJSONString(httpResult));
             if (HttpStatus.SUCCESS_CODE == httpResult.getCode()) {
+
+                Long logisticsOrderId =Long.parseLong(id);
+                List<LogisticsOrderCancelAmountVo> logisticsOrderCancelAmountVos = logisticsOrderAmountMapper.cancelOrderToAmountByOrderId(logisticsOrderId, NumberConstant.ONE);
+                if (CollectionUtils.isNotEmpty(logisticsOrderCancelAmountVos)) {
+                    logisticsOrderCancelAmountVos.forEach(cancelAmountVos -> {
+                        Long tOrderId = cancelAmountVos.getTOrderId();
+                        Long tOrderAddressId = cancelAmountVos.getTOrderAddressId();
+                        UpdateAddressEntrustAmountParam param = new UpdateAddressEntrustAmountParam();
+                        param.setTOrderId(tOrderId);
+                        param.setTAddressId(tOrderAddressId);
+                        param.setEntrustAmount(cancelAmountVos.getAmount().negate());
+                        param.setUpdateBy(LoginUserHolder.getUserId());
+                        param.setUpdateByName(LoginUserHolder.getUserName());
+                        HttpResult httpResult1 = tradeOrderAmountService.updateAddressEntrustAmount(param);
+                        if (HttpStatus.SUCCESS_CODE != httpResult1.getCode()) {
+                            log.info("贸易订单-撤销托运还原地址的分配量错误:,请求参数:{},{},响应信息:{}",
+                                    kwtLogisticsOrder.getTOrderId(), JSONObject.toJSONString(param), JSONObject.toJSONString(httpResult1));
+                            throw new BusinessException("贸易订单-撤销托运还原地址的分配量错误:" + httpResult1.getMsg());
+                        }
+                    });
+                }
 //                    kwtLogisticsOrder.setDelFlag(NumberConstant.ONE);
 //                    kwtLogisticsOrder.setUpdateTime(new Date());
 //                    kwtLogisticsOrder.setUpdateBy(LoginUserHolder.getUserId());