Jelajahi Sumber

update 新增简洁版运单详情接口

chenlin 2 tahun lalu
induk
melakukan
5065e64aab

+ 11 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/WaybillManagementController.java

@@ -38,6 +38,17 @@ public class WaybillManagementController {
         }
     }
 
+    @Valid
+    @RequestMapping(name = "简洁版运单详情", value = "/waybillSimpleData", method = RequestMethod.GET)
+    public HttpResult waybillSimpleData(@RequestParam("id") Long id) {
+        try {
+            return waybillManagementService.waybillSimpleData(id);
+        } catch (Exception e) {
+            log.error("托运订单详情:订单id {},error {} ", id, e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
     @RequestMapping(name = "运单看板", value = "/waybillIndex", method = RequestMethod.POST)
     public HttpResult waybillIndex(@Validated @RequestBody WaybillOrderDTO waybillOrderDTO) {
         try {

+ 84 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillSimpleDataVO.java

@@ -0,0 +1,84 @@
+package com.sckw.transport.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author JC
+ * @description 简洁版运单详情vo
+ * @date 2023-07-18 16:07:54
+ */
+@Data
+public class WaybillSimpleDataVO {
+    /**
+     * 运单ID
+     */
+    @JsonProperty("wOrderId")
+    private String wOrderId;
+
+    /**
+     * 运单号
+     */
+    @JsonProperty("wOrderNo")
+    private String wOrderNo;
+
+    /**
+     * 承运单号
+     */
+    @JsonProperty("lOrderNo")
+    private String lOrderNo;
+
+    /**
+     * 车辆ID
+     */
+    private Long truckId;
+
+    /**
+     * 运单状态
+     */
+    private String status;
+
+    /**
+     * 车牌号
+     */
+    private String truckNo;
+
+    /**
+     * 车牌号
+     */
+    private String type;
+
+    /**
+     * 司机ID
+     */
+    private Long driverId;
+
+    /**
+     * 司机姓名
+     */
+    private String driverName;
+
+    /**
+     * 司机电话
+     */
+    private String driverPhone;
+
+    /**
+     * 司机身份证
+     */
+    private String driverIdcard;
+
+    /**
+     * 承运单ID
+     */
+    @JsonProperty("lOrderId")
+    private String lOrderId;
+
+    /**
+     * 进度数据
+     */
+    private List<WaybillStatusVO> process;
+}
+

+ 65 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/WaybillManagementService.java

@@ -205,6 +205,71 @@ public class WaybillManagementService {
         return HttpResult.ok(waybillDataVO);
     }
 
+    /**
+     * 简洁版运单详情
+     * @param id
+     * @return
+     */
+    public HttpResult waybillSimpleData(Long id){
+        WaybillSimpleDataVO waybillSimpleDataVO = new WaybillSimpleDataVO();
+        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);
+        if(!ObjectUtils.isEmpty(info)) {
+            waybillSimpleDataVO.setWOrderId(info.getWOrderId() == null ?
+                    String.valueOf(info.get_id()) : String.valueOf(info.getWOrderId()));
+            waybillSimpleDataVO.setWOrderNo(info.getWOrderNo());
+            waybillSimpleDataVO.setLOrderId(String.valueOf(info.getLOrderId()));
+            waybillSimpleDataVO.setLOrderNo(info.getLOrderNo());
+            waybillSimpleDataVO.setLOrderNo(info.getLOrderNo());
+            waybillSimpleDataVO.setTruckId(info.getTruckId());
+            waybillSimpleDataVO.setStatus(String.valueOf(info.getStatus()));
+            waybillSimpleDataVO.setTruckNo(info.getTruckNo());
+            waybillSimpleDataVO.setDriverId(info.getDriverId());
+            waybillSimpleDataVO.setDriverName(info.getDriverName());
+            waybillSimpleDataVO.setDriverPhone(info.getDriverPhone());
+            waybillSimpleDataVO.setDriverId(info.getDriverId());
+            waybillSimpleDataVO.setType(String.valueOf(info.getType()));
+        }
+        List<Integer> statuses = initWaybillIndexStatus();
+        // 初始化各状态
+        List<WaybillStatusVO> statusVOS = new ArrayList<>();
+        statuses.forEach(e -> {
+            WaybillStatusVO waybillStatusVO = new WaybillStatusVO();
+            waybillStatusVO.setStatus(false);
+            waybillStatusVO.setCode(e);
+            waybillStatusVO.setDestination(CarWaybillEnum.getName(e));
+            statusVOS.add(waybillStatusVO);
+        });
+        List<KwtWaybillOrderTrack> kwtWaybillOrderTracks = kwtWaybillOrderTrackMapper.selectList(new LambdaQueryWrapper<KwtWaybillOrderTrack>()
+                .eq(KwtWaybillOrderTrack::getWOrderId, id));
+        if (CollectionUtils.isNotEmpty(kwtWaybillOrderTracks)) {
+            List<Long> userIds = new ArrayList<>();
+            kwtWaybillOrderTracks.forEach(e -> userIds.add(e.getCreateBy()));
+            List<UserCacheResDto> users = remoteSystemService.queryUserCacheByIds(userIds);
+            Map<Long, UserCacheResDto> usersMap = new HashMap<>();
+            users.forEach(e -> usersMap.put(e.getId(), e));
+            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.setOperateTime(kwtWaybillOrderTrack.getOperateTime() == null
+                                ? null : DateUtil.getDateTime(kwtWaybillOrderTrack.getOperateTime()));
+                        statusVO.setCreateByName(usersMap.get(kwtWaybillOrderTrack.getCreateBy()) == null
+                                ? null : usersMap.get(kwtWaybillOrderTrack.getCreateBy()).getName());
+                        break;
+                    }
+                }
+            }
+        }
+        waybillSimpleDataVO.setProcess(statusVOS);
+        return HttpResult.ok(waybillSimpleDataVO);
+    }
     /**
      * 运单看板列表
      * @param query