chenlin 2 лет назад
Родитель
Сommit
845b665bdd

+ 59 - 6
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/WayBillDetailDTO.java

@@ -10,27 +10,80 @@ import lombok.Data;
  **/
 @Data
 public class WayBillDetailDTO {
+    /**
+     * 运单ID
+     */
     private Long wOrderId;
+    /**
+     * 运单号
+     */
     private String wOrderNo;
+    /**
+     * 承运单号
+     */
     private String lOrderNo;
+    /**
+     * 车辆ID
+     */
     private Long truckId;
+    /**
+     * 车牌号
+     */
     private String truckNo;
+    /**
+     * 司机ID
+     */
     private Long driverId;
+    /**
+     * 司机姓名
+     */
     private String driverName;
+    /**
+     * 司机电话
+     */
     private String driverPhone;
+    /**
+     * 司机身份证
+     */
     private String driverIdcard;
+    /**
+     * 运单ID
+     */
     private Long lOrderId;
+    /**
+     * 分配任务量
+     */
     private String entrustAmount;
+    /**
+     * 运单类型
+     */
     private String type;
+    /**
+     * 计划开始时间
+     */
     private String startTime;
+    /**
+     * 计划结束时间
+     */
     private String endTime;
+    /**
+     * 创建人
+     */
     private String createBy;
+    /**
+     * 计费方式
+     */
     private String priceType;
+    /**
+     * 商品名
+     */
     private String goodsName;
-    private String startAddressId;
-    private String endAddressId;
-    private String startLocationName;
-    private String startLocationAddress;
-    private String endLocationName;
-    private String endLocationAddress;
+    /**
+     * 装载地址
+     */
+    private String loadDetailAddress;
+    /**
+     * 卸货地址
+     */
+    private String unloadDetailAddress;
 }

+ 9 - 4
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillDataVO.java

@@ -15,21 +15,26 @@ public class WaybillDataVO {
     /**
      * 基础信息
      */
-    private WayBillDetailDTO transportMessage;
+    private WayBillDetailDTO transport;
 
     /**
      * 车辆人员
      */
-    private WaybillCarVO carMessage;
+    private WaybillCarVO car;
 
     /**
      * 履约协议
      */
-    private WaybillTicketVO agreementMessage;
+    private WaybillTicketVO agreement;
 
     /**
      * 业务日志
      */
-    private List<WaybillTrackVO> logsMessage;
+    private List<WaybillTrackVO> logs;
+
+    /**
+     * 进度数据
+     */
+    private List<WaybillStatusVO> process;
 }
 

+ 122 - 80
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/WaybillManagementService.java

@@ -80,89 +80,131 @@ public class WaybillManagementService {
      * @return
      */
     public HttpResult waybillData(@Param("id") Long id) {
-        WayBillDetailDTO kwtWaybillOrder = kwtWaybillOrderMapper.selectWaybillRelate(id);
-        // 收发地址
-        List<KwtWaybillOrderAddress> kwtWaybillOrderAddressList = kwtWaybillOrderAddressMapper.selectList(new LambdaQueryWrapper<KwtWaybillOrderAddress>()
-                .eq(KwtWaybillOrderAddress::getWOrderId, kwtWaybillOrder.getLOrderId()));
-        if (CollectionUtils.isNotEmpty(kwtWaybillOrderAddressList)) {
-            for (KwtWaybillOrderAddress kwtWaybillOrderAddress : kwtWaybillOrderAddressList) {
-                // 1装货地址、2卸货地址
-                if (kwtWaybillOrderAddress.getAddressType().equals(NumberConstant.ONE)) {
-                    kwtWaybillOrder.setStartLocationName(kwtWaybillOrderAddress.getName());
-                    kwtWaybillOrder.setStartLocationAddress(kwtWaybillOrderAddress.getDetailAddress());
-                }
-                if (kwtWaybillOrderAddress.getAddressType().equals(NumberConstant.TWO)) {
-                    kwtWaybillOrder.setEndLocationName(kwtWaybillOrderAddress.getName());
-                    kwtWaybillOrder.setEndLocationAddress(kwtWaybillOrderAddress.getDetailAddress());
-                }
+        List<Integer> statuses = initWaybillIndexStatus();
+        // 初始化各状态
+        Map<String, WaybillStatusVO> statusMap = new HashMap<>();
+        statuses.forEach(e -> {
+            WaybillStatusVO waybillStatusVO = new WaybillStatusVO();
+            waybillStatusVO.setStatus(false);
+            waybillStatusVO.setCode(e);
+            switch (e){
+                case 2 -> waybillStatusVO.setDestination("司机接单");
+                case 3 -> waybillStatusVO.setDestination("已出车");
+                case 4 -> waybillStatusVO.setDestination("到装货地");
+                case 5 -> waybillStatusVO.setDestination("已装货");
+                case 6 -> waybillStatusVO.setDestination("到卸货地");
+                case 7 -> waybillStatusVO.setDestination("已卸货");
+                case 8 -> waybillStatusVO.setDestination("已核单");
             }
-        }
-        WaybillDataVO waybillDataVO = new WaybillDataVO();
-        waybillDataVO.setTransportMessage(kwtWaybillOrder);
+            statusMap.put(String.valueOf(e), waybillStatusVO);
+        });
 
-        // 车辆信息
-        List<String> list = new ArrayList<>(NumberConstant.SIXTEEN);
-        list.add(kwtWaybillOrder.getTruckNo());
-        Map<String, RTruckVo> trucks = remoteFleetService.findTruck(list);
-        WaybillCarVO waybillCarVO = new WaybillCarVO();
-        if (CollectionUtils.isNotEmpty(trucks)) {
-            waybillCarVO.setType(trucks.get(0).getTruckType());
-            waybillCarVO.setTruckId(String.valueOf(trucks.get(0).getId()));
-            waybillCarVO.setTrailerNo(trucks.get(0).getTrailerNo());
-        }
-        waybillCarVO.setDriverId(String.valueOf(kwtWaybillOrder.getDriverId()))
-                .setTruckNo(kwtWaybillOrder.getTruckNo())
-                .setDriverName(kwtWaybillOrder.getDriverName())
-                .setDriverPhone(kwtWaybillOrder.getDriverPhone());
-        waybillDataVO.setCarMessage(waybillCarVO);
-        // 履约信息
-        List<KwtWaybillOrderTicket> kwtWaybillOrderTicket = kwtWaybillOrderTicketMapper.selectList(new LambdaQueryWrapper<KwtWaybillOrderTicket>()
-                .eq(KwtWaybillOrderTicket::getWOrderId, kwtWaybillOrder.getWOrderId()));
-        WaybillTicketVO waybillTicketVO = new WaybillTicketVO();
-        if (CollectionUtils.isNotEmpty(kwtWaybillOrderTicket)) {
-            for (KwtWaybillOrderTicket ticket : kwtWaybillOrderTicket) {
-                // 装货
-                if (ticket.getType().equals(NumberConstant.ONE)) {
-                    waybillTicketVO.setLoadUrl(ticket.getUrls())
-                            .setLoadWeight(String.valueOf(ticket.getGrossAmount()))
-                            .setLoadTime(String.valueOf(ticket.getCreateTime()));
-                }
-                // 卸货
-                if (ticket.getType().equals(NumberConstant.TWO)) {
-                    waybillTicketVO.setUnloadUrl(ticket.getUrls())
-                            .setUnloadWeight(String.valueOf(ticket.getGrossAmount()))
-                            .setUnloadTime(String.valueOf(ticket.getCreateTime()));
-                }
-            }
-        }
-        waybillDataVO.setAgreementMessage(waybillTicketVO);
-        // 业务日志
-        List<WaybillTrackVO> waybillTrackVOS = new ArrayList<>();
-        List<KwtWaybillOrderTrack> kwtWaybillOrderTracks = kwtWaybillOrderTrackMapper.selectList(new LambdaQueryWrapper<KwtWaybillOrderTrack>()
-                .eq(KwtWaybillOrderTrack::getWOrderId, kwtWaybillOrder.getWOrderId()));
-        if (CollectionUtils.isNotEmpty(kwtWaybillOrderTracks)) {
-            List<Long> userIds = new ArrayList<>();
-            for (KwtWaybillOrderTrack track : kwtWaybillOrderTracks) {
-                userIds.add(track.getCreateBy());
-            }
-            List<UserCacheResDto> users = remoteSystemService.queryUserCacheByIds(userIds);
-            for (KwtWaybillOrderTrack track : kwtWaybillOrderTracks) {
-                WaybillTrackVO waybillTrackVO = new WaybillTrackVO();
-                waybillTrackVO.setId(String.valueOf(track.getId()))
-                        .setRemark(track.getRemark())
-                        .setStatus(String.valueOf(track.getStatus()))
-                        .setCreateBy(String.valueOf(track.getCreateBy()));
-                for (UserCacheResDto user : users) {
-                    if (Long.valueOf(user.getId()).equals(track.getCreateBy())) {
-                        waybillTrackVO.setCreateByName(user.getName())
-                                .setCreateByPhone(user.getPhone());
-                        break;
-                    }
-                }
-                waybillTrackVOS.add(waybillTrackVO);
-            }
+//        WayBillDetailDTO kwtWaybillOrder = kwtWaybillOrderMapper.selectWaybillRelate(id);
+//        // 收发地址
+//        List<KwtWaybillOrderAddress> kwtWaybillOrderAddressList = kwtWaybillOrderAddressMapper.selectList(new LambdaQueryWrapper<KwtWaybillOrderAddress>()
+//                .eq(KwtWaybillOrderAddress::getWOrderId, kwtWaybillOrder.getLOrderId()));
+//        if (CollectionUtils.isNotEmpty(kwtWaybillOrderAddressList)) {
+//            for (KwtWaybillOrderAddress kwtWaybillOrderAddress : kwtWaybillOrderAddressList) {
+//                // 1装货地址、2卸货地址
+//                if (kwtWaybillOrderAddress.getAddressType().equals(NumberConstant.ONE)) {
+//                    kwtWaybillOrder.setStartLocationName(kwtWaybillOrderAddress.getName());
+//                    kwtWaybillOrder.setStartLocationAddress(kwtWaybillOrderAddress.getDetailAddress());
+//                }
+//                if (kwtWaybillOrderAddress.getAddressType().equals(NumberConstant.TWO)) {
+//                    kwtWaybillOrder.setEndLocationName(kwtWaybillOrderAddress.getName());
+//                    kwtWaybillOrder.setEndLocationAddress(kwtWaybillOrderAddress.getDetailAddress());
+//                }
+//            }
+//        }
+//        WaybillDataVO waybillDataVO = new WaybillDataVO();
+//        waybillDataVO.setTransport(kwtWaybillOrder);
+//
+//        // 车辆信息
+//        List<String> list = new ArrayList<>();
+//        list.add(kwtWaybillOrder.getTruckNo());
+////        Map<String, RTruckVo> trucks = remoteFleetService.findTruck(list);
+//        Map<String, RTruckVo> trucks = new HashMap<>();
+//        WaybillCarVO waybillCarVO = new WaybillCarVO();
+//        if (CollectionUtils.isNotEmpty(trucks)) {
+//            waybillCarVO.setType(trucks.get(0).getTruckType());
+//            waybillCarVO.setTruckId(String.valueOf(trucks.get(0).getId()));
+//            waybillCarVO.setTrailerNo(trucks.get(0).getTrailerNo());
+//        }
+//        waybillCarVO.setDriverId(String.valueOf(kwtWaybillOrder.getDriverId()))
+//                .setTruckNo(kwtWaybillOrder.getTruckNo())
+//                .setDriverName(kwtWaybillOrder.getDriverName())
+//                .setDriverPhone(kwtWaybillOrder.getDriverPhone());
+//        waybillDataVO.setCar(waybillCarVO);
+//        // 履约信息
+//        List<KwtWaybillOrderTicket> kwtWaybillOrderTicket = kwtWaybillOrderTicketMapper.selectList(new LambdaQueryWrapper<KwtWaybillOrderTicket>()
+//                .eq(KwtWaybillOrderTicket::getWOrderId, kwtWaybillOrder.getWOrderId()));
+//        WaybillTicketVO waybillTicketVO = new WaybillTicketVO();
+//        if (CollectionUtils.isNotEmpty(kwtWaybillOrderTicket)) {
+//            for (KwtWaybillOrderTicket ticket : kwtWaybillOrderTicket) {
+//                // 装货
+//                if (ticket.getType().equals(NumberConstant.ONE)) {
+//                    waybillTicketVO.setLoadUrl(ticket.getUrls())
+//                            .setLoadWeight(String.valueOf(ticket.getGrossAmount()))
+//                            .setLoadTime(String.valueOf(ticket.getCreateTime()));
+//                }
+//                // 卸货
+//                if (ticket.getType().equals(NumberConstant.TWO)) {
+//                    waybillTicketVO.setUnloadUrl(ticket.getUrls())
+//                            .setUnloadWeight(String.valueOf(ticket.getGrossAmount()))
+//                            .setUnloadTime(String.valueOf(ticket.getCreateTime()));
+//                }
+//            }
+//        }
+//        waybillDataVO.setAgreement(waybillTicketVO);
+//        // 业务日志
+//        List<WaybillTrackVO> waybillTrackVOS = new ArrayList<>();
+//        List<KwtWaybillOrderTrack> kwtWaybillOrderTracks = kwtWaybillOrderTrackMapper.selectList(new LambdaQueryWrapper<KwtWaybillOrderTrack>()
+//                .eq(KwtWaybillOrderTrack::getWOrderId, kwtWaybillOrder.getWOrderId()));
+//        if (CollectionUtils.isNotEmpty(kwtWaybillOrderTracks)) {
+//            List<Long> userIds = new ArrayList<>();
+//            for (KwtWaybillOrderTrack track : kwtWaybillOrderTracks) {
+//                userIds.add(track.getCreateBy());
+//            }
+//            List<UserCacheResDto> users = remoteSystemService.queryUserCacheByIds(userIds);
+//            Map<String, UserCacheResDto> userMap = new HashMap<>();
+//            if(!ObjectUtils.isEmpty(users)) {
+//                users.forEach(e -> userMap.put(String.valueOf(e.getId()), e));
+//            }
+//            for (KwtWaybillOrderTrack track : kwtWaybillOrderTracks) {
+//                WaybillTrackVO waybillTrackVO = new WaybillTrackVO();
+//                if(statusMap.containsKey(String.valueOf(track.getStatus()))) {
+//                    statusMap.get(String.valueOf(track.getStatus()))
+//                            .setCreateTime(DateUtil.getDateTime(track.getCreateTime()))
+//                            .setCreateByName(userMap.get(String.valueOf(track.getCreateBy())).getName())
+//                            .setStatus(true)
+//                            .setId(track.getId());
+//                }
+//                waybillTrackVO.setId(String.valueOf(track.getId()))
+//                        .setRemark(track.getRemark())
+//                        .setStatus(String.valueOf(track.getStatus()))
+//                        .setCreateBy(userMap.get(String.valueOf(track.getCreateBy())).getName());
+//                waybillTrackVOS.add(waybillTrackVO);
+//            }
+//        }
+//        waybillDataVO.setLogs(waybillTrackVOS);
+//        waybillDataVO.setProcess(statusMap.values().stream().toList());
+//        return HttpResult.ok(waybillDataVO);
+
+        WaybillDataVO waybillDataVO = new WaybillDataVO();
+        Criteria criteria = new Criteria();
+        criteria.and("wOrderId").is(id);
+        criteria.and("entId").is(LoginUserHolder.getEntId());
+        criteria.and("delFlag").is(NumberConstant.ZERO);
+        Query queryFormat = new Query(criteria);
+        SckwWaybillOrder info = mongoTemplate.findOne(queryFormat, SckwWaybillOrder.class);
+        WayBillDetailDTO wayBillDetailDTO = new WayBillDetailDTO();
+        if(!ObjectUtils.isEmpty(info)) {
+            wayBillDetailDTO.setDriverId(info.getDriverId());
+            wayBillDetailDTO.setDriverName(info.getDriverName());
+            wayBillDetailDTO.setDriverPhone(info.getDriverPhone());
+            wayBillDetailDTO.setDriverId(info.getDriverId());
         }
-        waybillDataVO.setLogsMessage(waybillTrackVOS);
+        waybillDataVO.setTransport(wayBillDetailDTO);
         return HttpResult.ok(waybillDataVO);
     }