소스 검색

新增订单信息接口

donglang 2 달 전
부모
커밋
ce50404314

+ 9 - 0
sckw-modules-api/sckw-fleet-api/src/main/java/com/sckw/fleet/api/RemoteFleetService.java

@@ -95,4 +95,13 @@ public interface RemoteFleetService {
     List<RFleetDriverVo> findFleetDriveByEntId(Long entId);
 
     List<RFleetVo> findFleetByEntId(Long entId);
+
+    /**
+     * 通过车队id查询车队信息
+      * @param fleetId
+     * @return
+     */
+    RFleetVo findFleetById(Long fleetId);
+
+
 }

+ 1 - 1
sckw-modules-api/sckw-fleet-api/src/main/java/com/sckw/fleet/api/model/vo/RFleetDriverVo.java

@@ -20,7 +20,7 @@ public class RFleetDriverVo implements Serializable {
     private Long fleetId;
 
     /**
-     * 车队名称
+     * 司机id
      */
     private Long driverId;
 

+ 28 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dubbo/RemoteFleetServiceImpl.java

@@ -338,4 +338,32 @@ public class RemoteFleetServiceImpl implements RemoteFleetService {
         rTruckVo.setTruckType(StringUtils.isBlank(truck.getType()) ? "": String.valueOf(truck.getType()));
         return rTruckVo;
     }
+
+    /**
+     * 通过车队id查询车队信息
+     * @param fleetId
+     * @return
+     */
+    @Override
+    public RFleetVo findFleetById(Long fleetId) {
+        KwfFleet fleet = fleetRepository.queryByFleetId(fleetId);
+        if (Objects.isNull(fleet)){
+            throw new BusinessException("车队信息不存在");
+        }
+        RFleetVo fleetVo = new RFleetVo();
+        fleetVo.setId(fleet.getId());
+        fleetVo.setRemark(fleet.getRemark());
+        fleetVo.setStatus(fleet.getStatus());
+        fleetVo.setDelFlag(fleet.getDelFlag());
+        fleetVo.setEntId(fleet.getEntId());
+        fleetVo.setCaptainId(fleet.getCaptainId());
+        fleetVo.setName(fleet.getName());
+        fleetVo.setContacts(fleet.getContacts());
+        fleetVo.setPhone(fleet.getPhone());
+
+        return fleetVo;
+    }
+
+
+
 }

+ 1 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/KwfFleetDriver.java

@@ -21,7 +21,7 @@ public class KwfFleetDriver extends BaseModel {
     private Long fleetId;
 
     /**
-     * 车队名称
+     * 司机id
      */
     private Long driverId;
 

+ 8 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/repository/KwfFleetRepository.java

@@ -54,4 +54,12 @@ public class KwfFleetRepository extends ServiceImpl<KwfFleetMapper, KwfFleet> {
                 .eq(BaseModel::getDelFlag,0)
                 .eq(Objects.nonNull(entId),KwfFleet::getEntId,entId));
     }
+
+    public KwfFleet queryByFleetId(Long id) {
+        return getOne(Wrappers.<KwfFleet>lambdaQuery()
+                .eq(BaseModel::getDelFlag,0)
+                .eq(KwfFleet::getId, id)
+                .orderByDesc(BaseModel::getId)
+                .last("limit 1"));
+    }
 }

+ 14 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/KwtWaybillOrderController.java

@@ -642,4 +642,18 @@ public class KwtWaybillOrderController {
         return waybillOrderV1Service.approvalEditTicketV1(params);
     }
 
+    /**
+     * @param params {}
+     * @desc 查询运单信息
+     * @author zk
+     * @date 2024/3/7
+     **/
+    @PostMapping("/queryBillOrderInfo")
+    public HttpResult queryBillOrderInfo(@RequestBody @Valid WaybillOrderRequest params){
+        return waybillOrderV1Service.queryBillOrderInfo(params);
+    }
+
+
+
+
 }

+ 22 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/WaybillOrderRequest.java

@@ -0,0 +1,22 @@
+package com.sckw.transport.model.dto;
+
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author zk
+ * @desc 车辆运单审核
+ * @date 2023/7/27 0027
+ */
+@Data
+public class WaybillOrderRequest implements Serializable {
+
+    /**
+     * 运单号id
+     */
+    @NotNull(message = "运单号id不能为空")
+    private Long wOrderId;
+
+}

+ 76 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillOrderDetailVo.java

@@ -0,0 +1,76 @@
+package com.sckw.transport.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.util.Map;
+
+/**
+ * @author zk
+ * @desc 运单详情
+ * @date 2024/3/13 0013
+ */
+@Data
+public class WaybillOrderDetailVo {
+
+    /**
+     * 运单ID
+     */
+    @JsonProperty("wOrderId")
+    private Long wOrderId;
+
+    /**
+     * 运单号
+     */
+    @JsonProperty("wOrderNo")
+    private String wOrderNo;
+
+    /**
+     * 车辆ID
+     */
+    private Long truckId;
+
+    /**
+     * 车牌号
+     */
+    private String truckNo;
+
+
+    /**
+     * 司机ID
+     */
+    private Long driverId;
+
+    /**
+     * 司机姓名
+     */
+    private String driverName;
+
+    /**
+     * 车队ID
+     */
+    private Long fleetId;
+
+    /**
+     * 车队名称
+     */
+    private String fleetName;
+
+    /**
+     * 企业ID
+     */
+    private Long entId;
+
+    /**
+     * 企业名称
+     */
+    private String entName;
+
+
+    /**
+     * 地址信息(key: 地址类型(1装货地址、2卸货地址), value: 地址名称)
+     */
+    private Map<Integer, String> addresses;
+
+
+}

+ 53 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderV1Service.java

@@ -21,9 +21,7 @@ import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.excel.utils.DateUtil;
 import com.sckw.fleet.api.RemoteFleetService;
-import com.sckw.fleet.api.model.vo.RDriverVo;
-import com.sckw.fleet.api.model.vo.RTruckRouteVo;
-import com.sckw.fleet.api.model.vo.RTruckVo;
+import com.sckw.fleet.api.model.vo.*;
 import com.sckw.mongo.model.SckwWaybillOrder;
 import com.sckw.order.api.dubbo.TradeOrderInfoService;
 import com.sckw.stream.enums.MessageEnum;
@@ -2861,4 +2859,56 @@ public class KwtWaybillOrderV1Service {
         //罚款值=扣亏量 * 扣亏货值
         return deficitLossAmount.multiply(goodsPrice).setScale(4, RoundingMode.HALF_UP);
     }
+
+    /**
+     * @param params
+     * @desc 订单信息
+     * @author zk
+     * @date 2024/3/13
+     **/
+    public HttpResult queryBillOrderInfo(WaybillOrderRequest params) {
+        //运单信息
+        KwtWaybillOrderV1 waybillOrder = waybillOrderV1Dao.selectById(params.getWOrderId());
+        if (waybillOrder == null) {
+            return HttpResult.error("运单" + params.getWOrderId() + "不存在,请确认!");
+        }
+        WaybillOrderDetailVo orderDetailVo = new WaybillOrderDetailVo();
+        //车队车辆映射关系
+        RFleetDriverVo fleetByDriveId = remoteFleetService.findFleetByDriveId(waybillOrder.getDriverId());
+        if  (fleetByDriveId == null) {
+            return HttpResult.error("运单:" + params.getWOrderId(), "车辆信息不存在,请确认!");
+        }
+
+        //查询车辆信息
+        RFleetVo fleetVO = remoteFleetService.findFleetById(fleetByDriveId.getFleetId());
+        orderDetailVo.setDriverId(waybillOrder.getDriverId());
+        orderDetailVo.setDriverName(waybillOrder.getDriverName());
+        orderDetailVo.setTruckNo(waybillOrder.getTruckNo());
+        orderDetailVo.setFleetId(fleetByDriveId.getFleetId());
+        orderDetailVo.setFleetName(Optional.ofNullable(fleetVO).map(RFleetVo::getName).orElse(""));
+
+        //查询企业信息
+        EntCacheResDto entCacheResDto = remoteSystemService.queryEntCacheById(waybillOrder.getEntId());
+        orderDetailVo.setEntId(waybillOrder.getEntId());
+        orderDetailVo.setEntName(Optional.ofNullable(entCacheResDto).map(EntCacheResDto::getFirmName).orElse(""));
+
+        //查询定制信息
+        List<KwtWaybillOrderAddress> orderAddresses = waybillOrderAddressRepository.queryBywOrderIds(Arrays.asList(waybillOrder.getId()));
+        if (CollectionUtils.isEmpty(orderAddresses)) {
+            return HttpResult.error("运单:" + params.getWOrderId(), "地址信息不存在,请确认!");
+        }
+
+        Map<Integer, String> addressNameMap = orderAddresses.stream()
+                .filter(address -> address.getAddressType() != null && (address.getAddressType() == 1 || address.getAddressType() == 2))
+                .collect(Collectors.groupingBy(
+                        KwtWaybillOrderAddress::getAddressType,
+                        Collectors.collectingAndThen(
+                                Collectors.mapping(KwtWaybillOrderAddress::getName, Collectors.toList()),
+                                list -> list.isEmpty() ? "" : list.get(0)
+                        )
+                ));
+        orderDetailVo.setAddresses(addressNameMap);
+
+        return HttpResult.ok(orderDetailVo);
+    }
 }