Bladeren bron

update 更新运单详情接口

chenlin 2 jaren geleden
bovenliggende
commit
e89cd1d5e3

+ 5 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/WayBillDetailDTO.java

@@ -86,4 +86,9 @@ public class WayBillDetailDTO {
      * 卸货地址
      */
     private String unloadDetailAddress;
+
+    /**
+     * 承运企业
+     */
+    private String checkFirmName;
 }

+ 92 - 113
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/WaybillManagementService.java

@@ -16,10 +16,9 @@ import com.sckw.mongo.model.SckwWaybillOrder;
 import com.sckw.mongo.model.TableTops;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.model.dto.res.UserCacheResDto;
-import com.sckw.transport.dao.KwtWaybillOrderAddressMapper;
-import com.sckw.transport.dao.KwtWaybillOrderMapper;
-import com.sckw.transport.dao.KwtWaybillOrderTicketMapper;
-import com.sckw.transport.dao.KwtWaybillOrderTrackMapper;
+import com.sckw.transport.api.model.dto.vo.LogisticsOrderVO;
+import com.sckw.transport.dao.*;
+import com.sckw.transport.model.KwtLogisticsOrder;
 import com.sckw.transport.model.KwtWaybillOrderAddress;
 import com.sckw.transport.model.KwtWaybillOrderTicket;
 import com.sckw.transport.model.KwtWaybillOrderTrack;
@@ -61,6 +60,9 @@ public class WaybillManagementService {
     @Autowired
     public KwtWaybillOrderMapper kwtWaybillOrderMapper;
 
+    @Autowired
+    public KwtLogisticsOrderMapper kwtLogisticsOrderMapper;
+
     @Autowired
     public KwtWaybillOrderAddressMapper kwtWaybillOrderAddressMapper;
 
@@ -80,131 +82,108 @@ public class WaybillManagementService {
      * @return
      */
     public HttpResult waybillData(@Param("id") Long id) {
+        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();
+        WaybillTicketVO waybillTicketVO = new WaybillTicketVO();
+        WaybillCarVO waybillCarVO = new WaybillCarVO();
+        if(!ObjectUtils.isEmpty(info)) {
+            // 基础信息
+            wayBillDetailDTO.setDriverId(info.getDriverId());
+            wayBillDetailDTO.setDriverName(info.getDriverName());
+            wayBillDetailDTO.setDriverPhone(info.getDriverPhone());
+            wayBillDetailDTO.setDriverId(info.getDriverId());
+            wayBillDetailDTO.setWOrderNo(info.getWOrderNo());
+            wayBillDetailDTO.setLOrderNo(info.getLOrderNo());
+            wayBillDetailDTO.setEntrustAmount(String.valueOf(info.getEntrustAmount()));
+            wayBillDetailDTO.setType(String.valueOf(info.getType()));
+            wayBillDetailDTO.setStartTime(DateUtil.getDateTime(info.getStartTime()));
+            wayBillDetailDTO.setEndTime(DateUtil.getDateTime(info.getEndTime()));
+            wayBillDetailDTO.setCreateBy(info.getCreateByName());
+            wayBillDetailDTO.setGoodsName(info.getGoodsName());
+            wayBillDetailDTO.setLoadDetailAddress(info.getLoadDetailAddress());
+            wayBillDetailDTO.setUnloadDetailAddress(info.getUnloadDetailAddress());
+            KwtLogisticsOrder kwtLogisticsOrder = kwtLogisticsOrderMapper.selectById(info.getLOrderId());
+            wayBillDetailDTO.setPriceType(kwtLogisticsOrder.getBillingMode());
+            wayBillDetailDTO.setCheckFirmName(info.getCheckFirmName());
+            // 车辆信息
+            waybillCarVO.setType(info.getTruckType());
+            waybillCarVO.setTruckNo(info.getTruckNo());
+            waybillCarVO.setDriverName(info.getDriverName());
+            waybillCarVO.setDriverPhone(info.getDriverPhone());
+            List<String> list = new ArrayList<>();
+            list.add(info.getTruckNo());
+//            Map<String, RTruckVo> trucks = remoteFleetService.findTruck(list);
+            Map<String, RTruckVo> trucks = new HashMap<>();
+            if (CollectionUtils.isNotEmpty(trucks)) {
+                waybillCarVO.setTrailerNo(trucks.get(0).getTrailerNo());
+            }
+            // 票据
+            waybillTicketVO.setLoadTime(DateUtil.getDateTime(info.getLoadTime()));
+            waybillTicketVO.setLoadWeight(String.valueOf(info.getLoadAmount()));
+            waybillTicketVO.setLoadUrl(String.valueOf(info.getLoadUrls()));
+            waybillTicketVO.setUnloadTime(DateUtil.getDateTime(info.getUnloadTime()));
+            waybillTicketVO.setUnloadWeight(String.valueOf(info.getUnloadAmount()));
+            waybillTicketVO.setUnloadUrl(String.valueOf(info.getUnloadUrls()));
+        }
         List<Integer> statuses = initWaybillIndexStatus();
         // 初始化各状态
-        Map<String, WaybillStatusVO> statusMap = new HashMap<>();
+        List<WaybillStatusVO> statusVOS = new ArrayList<>();
         statuses.forEach(e -> {
             WaybillStatusVO waybillStatusVO = new WaybillStatusVO();
             waybillStatusVO.setStatus(false);
             waybillStatusVO.setCode(e);
             switch (e){
-                case 2 -> waybillStatusVO.setDestination("司机接单");
+                case 2 -> waybillStatusVO.setDestination("接单");
                 case 3 -> waybillStatusVO.setDestination("已出车");
-                case 4 -> waybillStatusVO.setDestination("到装货地");
+                case 4 -> waybillStatusVO.setDestination("到装货地");
                 case 5 -> waybillStatusVO.setDestination("已装货");
-                case 6 -> waybillStatusVO.setDestination("到卸货地");
+                case 6 -> waybillStatusVO.setDestination("到达卸货点");
                 case 7 -> waybillStatusVO.setDestination("已卸货");
                 case 8 -> waybillStatusVO.setDestination("已核单");
             }
-            statusMap.put(String.valueOf(e), waybillStatusVO);
+            statusVOS.add(waybillStatusVO);
         });
-
-//        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<KwtWaybillOrderTrack> kwtWaybillOrderTracks = kwtWaybillOrderTrackMapper.selectList(new LambdaQueryWrapper<KwtWaybillOrderTrack>()
+                .eq(KwtWaybillOrderTrack::getWOrderId, id));
+        List<WaybillTrackVO> waybillTrackVOS = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(kwtWaybillOrderTracks)) {
+            List<Long> userIds = new ArrayList<>();
+            kwtWaybillOrderTracks.forEach(e -> userIds.add(e.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());
+            List<UserCacheResDto> users = new ArrayList<>();
+            Map<Long, String> usersMap = new HashMap<>();
+            users.forEach(e -> usersMap.put(e.getId(), e.getName()));
+            for (KwtWaybillOrderTrack kwtWaybillOrderTrack: kwtWaybillOrderTracks) {
+                for (WaybillStatusVO statusVO:statusVOS) {
+                    if(statusVO.getCode().equals(kwtWaybillOrderTrack.getStatus())) {
+                        statusVO.setStatus(true);
+                        statusVO.setId(kwtWaybillOrderTrack.getId());
+                        statusVO.setCreateTime(DateUtil.getDateTime(kwtWaybillOrderTrack.getCreateTime()));
+                        statusVO.setCreateByName(usersMap.get(kwtWaybillOrderTrack.getCreateBy()));
+                        break;
+                    }
+                }
+                WaybillTrackVO waybillTrackVO = new WaybillTrackVO();
+                waybillTrackVO.setId(String.valueOf(kwtWaybillOrderTrack.getId()))
+                        .setRemark(kwtWaybillOrderTrack.getRemark())
+                        .setStatus(String.valueOf(kwtWaybillOrderTrack.getStatus()))
+                        .setCreateBy(usersMap.get(String.valueOf(kwtWaybillOrderTrack.getCreateBy())))
+                        .setCreateTime(DateUtil.getDateTime(kwtWaybillOrderTrack.getCreateTime()));
+                waybillTrackVOS.add(waybillTrackVO);
+            }
         }
+
+        waybillDataVO.setAgreement(waybillTicketVO);
+        waybillDataVO.setCar(waybillCarVO);
         waybillDataVO.setTransport(wayBillDetailDTO);
+        waybillDataVO.setProcess(statusVOS);
+        waybillDataVO.setLogs(waybillTrackVOS);
         return HttpResult.ok(waybillDataVO);
     }