Forráskód Böngészése

更改子运单状态

donglang 1 hónapja
szülő
commit
79e87a12db

+ 3 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/enterpriseApp/AppWayBillController.java

@@ -240,10 +240,10 @@ public class AppWayBillController {
     /**
      * 运单状态统计
      */
-    @GetMapping("/statisticsWaybillOrder")
+    @PostMapping("/statisticsWaybillOrder")
     @Operation(summary = "运单状态统计")
-    public BaseResult<StatisticsWaybillResp> statisticsWaybillOrder() {
-        return BaseResult.success(waybillOrderService.statisticsWaybillOrder());
+    public BaseResult<StatisticsWaybillResp> statisticsWaybillOrder(@RequestBody @Valid WaybillStatisticsParam param) {
+        return BaseResult.success(waybillOrderService.statisticsWaybillOrder(param));
     }
 
     /**

+ 5 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/CancelHandler.java

@@ -22,7 +22,7 @@ import java.util.Optional;
 /**
  * Author: donglang
  * Time: 2025-11-19
- * Des: 卸货
+ * Des: 取消
  * Version: 1.0
  */
 
@@ -114,6 +114,10 @@ public class CancelHandler extends AbstractWaybillOrderHandler<WaybillOrderCance
         // 已取消状态
         waybill.setStatus(CarWaybillV1Enum.APPROVAL_TREAT.getCode());
         waybillOrderRepository.updateById(waybill);
+
+        KwtWaybillOrderSubtask waybillSubtask = getWaybillSubtask(waybill.getId());
+        waybillSubtask.setStatus(CarWaybillV1Enum.APPROVAL_TREAT.getCode());
+        waybillOrderSubtaskRepository.updateById(waybillSubtask);
     }
 
     @Override

+ 8 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/ComeIntoHandler.java

@@ -10,6 +10,7 @@ import com.sckw.core.model.enums.CarWaybillV1Enum;
 import com.sckw.fleet.api.model.vo.RTruckVo;
 import com.sckw.transport.model.KwtWaybillOrder;
 import com.sckw.transport.model.KwtWaybillOrderNode;
+import com.sckw.transport.model.KwtWaybillOrderSubtask;
 import com.sckw.transport.model.KwtWaybillOrderTicket;
 import com.sckw.transport.model.param.WaybillOrderCmeIntoWeighParam;
 import com.sckw.transport.repository.KwtWaybillOrderTicketRepository;
@@ -17,6 +18,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.Objects;
 
 /**
@@ -53,11 +55,11 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
                 .eq(KwtWaybillOrderTicket::getType, AddressTypeEnum.SHIPMENT.getCode());
         KwtWaybillOrderTicket orderTicket = waybillOrderTicketRepository.getOne(queryWrapper);
         orderTicket.setTareAmount(param.getTareAmount());
-        waybillOrderTicketRepository.save(orderTicket);
+        waybillOrderTicketRepository.updateById(orderTicket);
 
         //2.填充首次皮重
         RTruckVo truck = remoteFleetService.findTruckByTruckNo(param.getTruckNo());
-        if (truck != null && truck.getTareWeight() == null) {
+        if (truck != null && (truck.getTareWeight() == null || BigDecimal.ZERO.compareTo(truck.getTareWeight()) == 0)) {
             RTruckVo truckNo = new RTruckVo();
             truckNo.setId(truck.getId());
             truckNo.setTareWeight(param.getTareAmount());
@@ -70,6 +72,10 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
         // 到达装货地点状态
         waybillOrder.setStatus(CarWaybillV1Enum.REFUSE_TRAFFIC.getCode());
         waybillOrderRepository.updateById(waybillOrder);
+
+        KwtWaybillOrderSubtask waybillSubtask = getWaybillSubtask(waybillOrder.getId());
+        waybillSubtask.setStatus(CarWaybillV1Enum.REFUSE_TRAFFIC.getCode());
+        waybillOrderSubtaskRepository.updateById(waybillSubtask);
     }
 
 

+ 5 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/LeaveHandler.java

@@ -5,6 +5,7 @@ import com.sckw.core.common.enums.enums.ErrorCodeEnum;
 import com.sckw.core.exception.BusinessPlatfromException;
 import com.sckw.core.model.enums.CarWaybillV1Enum;
 import com.sckw.transport.model.KwtWaybillOrder;
+import com.sckw.transport.model.KwtWaybillOrderSubtask;
 import com.sckw.transport.model.param.WaybillOrderLeaveParam;
 import com.sckw.transport.repository.KwtWaybillOrderSubtaskRepository;
 import com.sckw.transport.repository.KwtWaybillOrderTicketRepository;
@@ -53,6 +54,10 @@ public class LeaveHandler extends AbstractWaybillOrderHandler<WaybillOrderLeaveP
         // 已离场状态
         waybill.setStatus(CarWaybillV1Enum.WAIT_LOADING.getCode());
         waybillOrderRepository.updateById(waybill);
+
+        KwtWaybillOrderSubtask waybillSubtask = getWaybillSubtask(waybill.getId());
+        waybillSubtask.setStatus(CarWaybillV1Enum.WAIT_LOADING.getCode());
+        waybillOrderSubtaskRepository.updateById(waybillSubtask);
     }
 
     @Override

+ 5 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/LoadingHandler.java

@@ -5,6 +5,7 @@ import com.sckw.core.common.enums.enums.ErrorCodeEnum;
 import com.sckw.core.exception.BusinessPlatfromException;
 import com.sckw.core.model.enums.CarWaybillV1Enum;
 import com.sckw.transport.model.KwtWaybillOrder;
+import com.sckw.transport.model.KwtWaybillOrderSubtask;
 import com.sckw.transport.model.param.WaybillOrderLoadingParam;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -43,6 +44,10 @@ public class LoadingHandler extends AbstractWaybillOrderHandler<WaybillOrderLoad
         // 已装货状态
         waybillOrder.setStatus(CarWaybillV1Enum.EXIT_COMPLETED.getCode());
         waybillOrderRepository.updateById(waybillOrder);
+
+        KwtWaybillOrderSubtask waybillSubtask = getWaybillSubtask(waybillOrder.getId());
+        waybillSubtask.setStatus(CarWaybillV1Enum.EXIT_COMPLETED.getCode());
+        waybillOrderSubtaskRepository.updateById(waybillSubtask);
     }
 
     @Override

+ 3 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/TakingOrderHandler.java

@@ -180,7 +180,7 @@ public class TakingOrderHandler extends AbstractWaybillOrderHandler<OrderCircula
             throw new BusinessPlatfromException(ErrorCodeEnum.TRUCK_STATUS_ERROR, "当前车辆已锁定");
         }
         //核定载重
-        if (truckNo.getActualWeight() == null) {
+        if (BigDecimal.ZERO.compareTo(truckNo.getActualWeight()) == 0) {
             throw new BusinessPlatfromException(ErrorCodeEnum.RESOURCE_NOT_FOUND, "车辆核定载重不能为空!");
         }
 
@@ -230,10 +230,10 @@ public class TakingOrderHandler extends AbstractWaybillOrderHandler<OrderCircula
         }
 
         //订单分配总量
-        BigDecimal entrustAmount = tradeOrder.getEntrustAmount();
+        BigDecimal entrustAmount = tradeOrder.getAmount();
         //订单实际交付量
         BigDecimal actualAmount = tradeOrder.getActualAmount();
-        if (entrustAmount == null || actualAmount == null) {
+        if (entrustAmount == null || actualAmount == null ||  BigDecimal.ZERO.compareTo(actualAmount) == 0) {
             throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "订单分配总量或订单实际交付量不能为空!");
         }
         //订单余量 = 分配总量 - 实际交付量

+ 4 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/UnloadingHandler.java

@@ -61,6 +61,10 @@ public class UnloadingHandler extends AbstractWaybillOrderHandler<WaybillOrderUn
         // 已卸货状态
         waybill.setStatus(CarWaybillV1Enum.COMPLETION_LOADING.getCode());
         waybillOrderRepository.updateById(waybill);
+
+        KwtWaybillOrderSubtask waybillSubtask = getWaybillSubtask(waybill.getId());
+        waybillSubtask.setStatus(CarWaybillV1Enum.COMPLETION_LOADING.getCode());
+        waybillOrderSubtaskRepository.updateById(waybillSubtask);
     }
 
     @Override

+ 41 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/WaybillStatisticsParam.java

@@ -0,0 +1,41 @@
+package com.sckw.transport.model.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author :donglang
+ * @version :1.0
+ * @description :
+ * @create :2025-11-13 08:59:00
+ */
+@Data
+public class WaybillStatisticsParam implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 6124647833601153571L;
+
+    /**
+     * 企业id
+     */
+    @Schema(description = "企业id")
+    @NotNull(message = "企业id不能为空!")
+    private Long entId;
+
+    /**
+     * 车牌号
+     */
+    @Schema(description = "车牌号")
+    @NotBlank(message = "车牌号不能为空!")
+    private String truckNo;
+
+
+
+
+
+}

+ 4 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/app/WaybillOrderService.java

@@ -487,7 +487,7 @@ public class WaybillOrderService {
                                                        Map<String, KwtWaybillOrderTicket> ticketMap) {
         WaybillOrderStatusResp wbOrderResp = new WaybillOrderStatusResp();
         wbOrderResp.setId(wbOrder.getId());
-
+        wbOrderResp.setLogisticsOrderId(Optional.ofNullable(wbOrder.getLOrderId()).map(String::valueOf).orElse(null));
         //装货、卸货净重、任务量
         KwtWaybillOrderSubtask subtask = subtaskMap.getOrDefault(wbOrder.getId(), new KwtWaybillOrderSubtask());
         wbOrderResp.setLoadingNetWeight(subtask.getLoadAmount());
@@ -557,10 +557,12 @@ public class WaybillOrderService {
 
     }
 
-    public StatisticsWaybillResp statisticsWaybillOrder() {
+    public StatisticsWaybillResp statisticsWaybillOrder(WaybillStatisticsParam param) {
         StatisticsWaybillResp waybillResp = new StatisticsWaybillResp();
         log.info("运单状态统计");
         WaybillOrderReq waybillOrderReq = new WaybillOrderReq();
+        waybillOrderReq.setEntId(String.valueOf(param.getEntId()));
+        waybillOrderReq.setTruckNo(param.getTruckNo());
         StatisticsWaybillResp statisticsWaybillResp = waybillOrderV1Service.statisticsWaybillOrder(waybillOrderReq);
         if (statisticsWaybillResp == null || CollectionUtils.isEmpty(statisticsWaybillResp.getOrderStatusStatistics())) {
             return new StatisticsWaybillResp();