Kaynağa Gözat

Merge remote-tracking branch 'origin/dev' into dev

zk 2 yıl önce
ebeveyn
işleme
fd595a360e

+ 16 - 13
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java

@@ -1436,18 +1436,19 @@ public class AcceptCarriageOrderService {
             throw new RuntimeException("当前订单并不属于【待派车】,【运输中】状态");
         }
         /**完结拦截*/
-        List<Integer> statusList = new ArrayList<>();
-        statusList.add(CarWaybillEnum.PENDING_VEHICLE.getCode());
-        statusList.add(CarWaybillEnum.EXIT_COMPLETED.getCode());
-        statusList.add(CarWaybillEnum.WAIT_LOADING.getCode());
-        statusList.add(CarWaybillEnum.COMPLETION_LOADING.getCode());
-        statusList.add(CarWaybillEnum.WAIT_UNLOADING.getCode());
-        statusList.add(CarWaybillEnum.COMPLETION_UNLOADING.getCode());
-        statusList.add(CarWaybillEnum.APPROVAL_IN.getCode());
-        statusList.add(CarWaybillEnum.APPROVAL_NO_PASS.getCode());
-        int count = waybillOrderMapper.selectDataByLorderId(id, statusList);
-        if (count > NumberConstant.ZERO) {
-            throw new RuntimeException("检测您现在有运单正在执行中,该订单目前不可完结,请先将运单执行完毕");
+//        List<Integer> statusList = new ArrayList<>();
+//        statusList.add(CarWaybillEnum.PENDING_VEHICLE.getCode());
+//        statusList.add(CarWaybillEnum.EXIT_COMPLETED.getCode());
+//        statusList.add(CarWaybillEnum.WAIT_LOADING.getCode());
+//        statusList.add(CarWaybillEnum.COMPLETION_LOADING.getCode());
+//        statusList.add(CarWaybillEnum.WAIT_UNLOADING.getCode());
+//        statusList.add(CarWaybillEnum.COMPLETION_UNLOADING.getCode());
+//        statusList.add(CarWaybillEnum.APPROVAL_IN.getCode());
+//        statusList.add(CarWaybillEnum.APPROVAL_NO_PASS.getCode());
+//        int count = waybillOrderMapper.selectDataByLorderId(id, statusList);
+        boolean flag = commonService.judgmentWaybillOrderIsFinish(id);
+        if (flag) {
+            throw new BusinessException("检测您现在有运单正在执行中,该订单目前不可完结,请先将运单执行完毕");
         }
         BigDecimal ignoreAmount = logisticsOrder.getAmount().subtract(logisticsOrder.getTotalLoadAmount());
         //修改单据本身数据
@@ -1490,9 +1491,11 @@ public class AcceptCarriageOrderService {
             orderStatusList.add(LogisticsOrderEnum.IN_TRANSIT.getCode());
             List<KwtLogisticsOrder> logisticsOrders = logisticsOrderMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrder>()
                     .eq(KwtLogisticsOrder::getTOrderId, logisticsOrder.getTOrderId())
-                    .in(KwtLogisticsOrder::getStatus, statusList));
+                    .in(KwtLogisticsOrder::getStatus, orderStatusList));
             if (org.springframework.util.CollectionUtils.isEmpty(logisticsOrders)) {
                 tradeOrder.setIsAllComplete(true);
+            }else {
+                tradeOrder.setIsAllComplete(false);
             }
             tradeOrder.setTOrderId(logisticsOrder.getTOrderId());
 //            tradeOrder.setActualLoadAmount(map.get("totalLoadAmount"));

+ 30 - 4
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/CommonService.java

@@ -9,10 +9,7 @@ import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.common.enums.enums.DictEnum;
 import com.sckw.core.exception.BusinessException;
 import com.sckw.core.model.constant.Global;
-import com.sckw.core.model.enums.LogisticsOrderEnum;
-import com.sckw.core.model.enums.OrderRuleEnum;
-import com.sckw.core.model.enums.RedisOrderGenerateEnum;
-import com.sckw.core.model.enums.TaxRateTypeEnum;
+import com.sckw.core.model.enums.*;
 import com.sckw.core.utils.*;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.fleet.api.RemoteFleetService;
@@ -30,6 +27,7 @@ import com.sckw.system.api.model.dto.res.UserCacheResDto;
 import com.sckw.transport.common.config.MessageUrlConfig;
 import com.sckw.transport.dao.KwtLogisticsOrderContractMapper;
 import com.sckw.transport.dao.KwtLogisticsOrderMapper;
+import com.sckw.transport.dao.KwtWaybillOrderMapper;
 import com.sckw.transport.model.KwtLogisticsOrder;
 import com.sckw.transport.model.KwtLogisticsOrderContract;
 import com.sckw.transport.model.KwtLogisticsOrderUnit;
@@ -83,6 +81,9 @@ public class CommonService {
     @Autowired
     private KwtLogisticsOrderContractMapper logisticsOrderContractMapper;
 
+    @Autowired
+    private KwtWaybillOrderMapper waybillOrderMapper;
+
     /**
      * 组装返回数据
      *
@@ -750,6 +751,31 @@ public class CommonService {
     }
 
 
+    /**
+     * 验证当前物流订单是否存在未完结的车辆运单
+     *
+     * @param id 对应物流订单id
+     */
+    public boolean judgmentWaybillOrderIsFinish(String id) {
+        boolean flag = false;
+        List<Integer> statusList = new ArrayList<>();
+//        statusList.add(CarWaybillEnum.PENDING_ORDER.getCode());
+        statusList.add(CarWaybillEnum.PENDING_VEHICLE.getCode());
+        statusList.add(CarWaybillEnum.EXIT_COMPLETED.getCode());
+        statusList.add(CarWaybillEnum.WAIT_LOADING.getCode());
+        statusList.add(CarWaybillEnum.COMPLETION_LOADING.getCode());
+        statusList.add(CarWaybillEnum.WAIT_UNLOADING.getCode());
+        statusList.add(CarWaybillEnum.COMPLETION_UNLOADING.getCode());
+        statusList.add(CarWaybillEnum.APPROVAL_IN.getCode());
+        statusList.add(CarWaybillEnum.APPROVAL_NO_PASS.getCode());
+//        statusList.add(CarWaybillEnum.APPROVAL_PASS.getCode());
+        int count = waybillOrderMapper.selectDataByLorderId(id, statusList);
+        if (count > NumberConstant.ZERO) {
+            flag = true;
+        }
+        return flag;
+    }
+
     /**
      * @param loadAmount    装货量
      * @param deficitAmount 亏吨量

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java

@@ -871,7 +871,7 @@ public class ConsignOrderService {
             throw new BusinessException("当前订单并不属于【待派车】,【运输中】状态");
         }
         //验证当前物流订单是否还存在进行的车辆运单
-        boolean flag = judgmentWaybillOrderIsFinish(id);
+        boolean flag = commonService.judgmentWaybillOrderIsFinish(id);
         if (flag) {
             throw new BusinessException("检测您现在有运单正在执行中,该订单目前不可完结,请先将运单执行完毕!");
         }

+ 4 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java

@@ -45,6 +45,7 @@ import com.sckw.transport.model.vo.PurchaseLogisticOrderExcelVo;
 import com.sckw.transport.model.vo.SellLogisticOrderExcelVo;
 import com.sckw.transport.model.vo.WaybillCountVo;
 import io.seata.core.context.RootContext;
+import io.seata.spring.annotation.GlobalTransactional;
 import jakarta.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
@@ -1228,8 +1229,8 @@ public class LogisticsConsignmentService {
      * @param type           类型
      * @return
      */
-    @Transactional(rollbackFor = Exception.class)
-//    @GlobalTransactional(timeoutMills = 120000)
+//    @Transactional(rollbackFor = Exception.class)
+    @GlobalTransactional()
     public HttpResult orderFinish(OrderFinishDTO orderFinishDTO, String type) {
         HttpResult httpResult = ValidUtil.serviceValid(orderFinishDTO);
         if (!String.valueOf(httpResult.getCode()).equals(String.valueOf(HttpStatus.SUCCESS_CODE))) {
@@ -1290,7 +1291,7 @@ public class LogisticsConsignmentService {
             throw new BusinessException("当前订单并不属于【待派车】,【运输中】状态");
         }
         //验证当前物流订单是否还存在进行的车辆运单
-        boolean flag = judgmentWaybillOrderIsFinish(id);
+        boolean flag = commonService.judgmentWaybillOrderIsFinish(id);
         if (flag) {
             throw new BusinessException("检测您现在有运单正在执行中,该订单目前不可完结,请先将运单执行完毕!");
         }

+ 2 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ManagementWaybillOrderService.java

@@ -27,6 +27,7 @@ import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.regex.Pattern;
@@ -208,7 +209,7 @@ public class ManagementWaybillOrderService {
                     }
                 }
                 // 实际扣亏量
-                vo.setDeficitRealAmount(lossAmount.setScale(2).toString());
+                vo.setDeficitRealAmount(lossAmount.setScale(2, RoundingMode.HALF_UP).toString());
                 vo.setGoodsPriceUnit(waybillOrder.getGoodsPriceUnit() == null ?
                         null : String.valueOf(waybillOrder.getGoodsPriceUnit()));
                 returnList.add(vo);

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/TransportCommonService.java

@@ -352,7 +352,7 @@ public class TransportCommonService {
             return result;
         }
         /**以此字段判别是否存在分包操作*/
-        if (ObjectUtils.isEmpty(logisticsOrder.getPid())) {
+        if (ObjectUtils.isEmpty(logisticsOrder.getPid()) && "1".equals(logisticsOrder.getType())) {
             /**并不存在分包,撤销数据回归到贸易订单,[待接单状态]下才能撤销托运*/
             /**调用dubbo 修改数值*/
             Long tOrderId = logisticsOrder.getTOrderId();