Bläddra i källkod

原矿报表更新时间

donglang 1 dag sedan
förälder
incheckning
49e2c37632

+ 12 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtWaybillOrderNodeRepository.java

@@ -101,4 +101,16 @@ public class KwtWaybillOrderNodeRepository extends ServiceImpl<KwtWaybillOrderNo
                 .orderByAsc(KwtWaybillOrderNode::getCreateTime));
     }
 
+    /**
+     * 查询司机的运单节点数据
+     * @param wOrderIds
+     * @return
+     */
+    public List<KwtWaybillOrderNode> queryNodesByWayOrderIds(List<Long> wOrderIds) {
+        return list(Wrappers.<KwtWaybillOrderNode>lambdaQuery()
+                .in(KwtWaybillOrderNode::getWOrderId, wOrderIds)
+                .eq(KwtWaybillOrderNode::getCreateBy, 1)
+                .orderByAsc(KwtWaybillOrderNode::getCreateTime));
+    }
+
 }

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

@@ -2385,10 +2385,17 @@ public class WaybillOrderService {
         log.info("铲车,size:{}", forklifts.size());
         Map<Long, KwtForkliftWaybillOrder> forkliftMap = forklifts.stream().collect(Collectors.toMap(KwtForkliftWaybillOrder::getWOrderId, Function.identity(), (x, y) -> x));
 
+        //7.节点
+        List<KwtWaybillOrderNode> nodes = waybillOrderNodeRepository.queryNodesByWayOrderIds(wOrderIds);
+        if (CollectionUtils.isEmpty(nodes)) {
+            throw new BusinessPlatfromException(ErrorCodeEnum.WAYBILL_ORDER_NOT_FOUND, "运单接单不存在,wOrderIds:" + JSON.toJSONString(wOrderIds));
+        }
+        Map<Long, List<KwtWaybillOrderNode>> nodeList = nodes.stream().collect(Collectors.groupingBy(KwtWaybillOrderNode::getWOrderId);
+
         //组装参数
         List<WaybillOrderRawOreReportResp> orderList = waybillOrderList.stream()
                 .map(waybillOrder -> {
-                    return getWaybillOrderRawOreReport(waybillOrder,logOrderMap, ticketMap, gatekeeperMap, forkliftMap);
+                    return getWaybillOrderRawOreReport(waybillOrder,logOrderMap, ticketMap, gatekeeperMap, forkliftMap, nodeMap);
                 }).collect(Collectors.toList());
         log.info("[报表]查询运单每日报表结束,还未分组, size:{}",orderList.size());
         return orderList;
@@ -2404,7 +2411,30 @@ public class WaybillOrderService {
                                                                      Map<Long, KwtLogisticsOrder> logOrderMap,
                                                                      Map<String, KwtWaybillOrderTicket> ticketMap,
                                                                      Map<String, KwtGatekeeperWaybillOrder> gatekeeperMap,
-                                                                     Map<Long, KwtForkliftWaybillOrder> forkliftMap) {
+                                                                     Map<Long, KwtForkliftWaybillOrder> forkliftMap,
+                                                                     Map<Long, List<KwtWaybillOrderNode>> nodeMap) {
+        WaybillOrderRawOreReportResp waybillOrderRawOreReportResp = new WaybillOrderRawOreReportResp();
+        waybillOrderRawOreReportResp.setSerialNumber();
+        waybillOrderRawOreReportResp.setId(waybillOrder.getId());
+        waybillOrderRawOreReportResp.setLogisticsNo();
+        waybillOrderRawOreReportResp.setWaybillNo();
+        waybillOrderRawOreReportResp.setDictId();
+        waybillOrderRawOreReportResp.setGoodsName();
+        waybillOrderRawOreReportResp.setTruckNo(waybillOrder.getTruckNo());
+        waybillOrderRawOreReportResp.setAcceptTime();
+        waybillOrderRawOreReportResp.setLoadTareAmount();
+        waybillOrderRawOreReportResp.setLoadGrossAmount();
+        waybillOrderRawOreReportResp.setLoadAmount(waybillOrder.getLoadAmount());
+        waybillOrderRawOreReportResp.setLoadTareAmountTime();
+        waybillOrderRawOreReportResp.setLoadGrossTime();
+        waybillOrderRawOreReportResp.setLoadPerson();
+        waybillOrderRawOreReportResp.setUnLoadTareAmount();
+        waybillOrderRawOreReportResp.setUnLoadGrossAmount();
+        waybillOrderRawOreReportResp.setUnLoadAmount(waybillOrder.getUnloadAmount());
+        waybillOrderRawOreReportResp.setUnLoadTareAmountTime();
+        waybillOrderRawOreReportResp.setUnLoadGrossTime();
+        waybillOrderRawOreReportResp.setUnLoadPerson();
+        return waybillOrderRawOreReportResp;
 
         //订单
         KwtLogisticsOrder logOrder = logOrderMap.getOrDefault(waybillOrder.getLOrderId(), new KwtLogisticsOrder());
@@ -2418,6 +2448,8 @@ public class WaybillOrderService {
         KwtGatekeeperWaybillOrder unLoadGatekeeper = gatekeeperMap.getOrDefault(waybillOrder.getId() + "-" + 2, new KwtGatekeeperWaybillOrder());
         //铲车
         KwtForkliftWaybillOrder forklift = forkliftMap.getOrDefault(waybillOrder.getId(), new KwtForkliftWaybillOrder());
+        //节点
+        List<KwtWaybillOrderNode> nodeList = nodeMap.getOrDefault(waybillOrder.getId(), new ArrayList<>());
 
         WaybillOrderRawOreReportResp resp = new WaybillOrderRawOreReportResp();
         resp.setId(waybillOrder.getId());
@@ -2428,15 +2460,28 @@ public class WaybillOrderService {
         resp.setLoadTareAmount(loadTicket.getTareAmount());
         resp.setLoadGrossAmount(loadTicket.getGrossAmount());
         resp.setLoadAmount(loadTicket.getAmount());
-        resp.setLoadTareAmountTime(loadTicket.getUpdateTime()); //  todo 修改
         resp.setLoadGrossTime(loadTicket.getUpdateTime());
         resp.setLoadPerson(loadGatekeeper.getGatekeeperName());
 
+        //装货过皮时间:获取节点里status=5 and creat_by = 1的最新数据
+        KwtWaybillOrderNode orderNode1 = nodeList.stream()
+                .filter(node -> Objects.equals(node.getOrderStatus(), 5))
+                .max(Comparator.comparing(KwtWaybillOrderNode::getCreateTime))
+                .orElse(new KwtWaybillOrderNode());
+        resp.setLoadTareAmountTime(orderNode1 != null ? orderNode1.getCreateTime() : loadTicket.getUpdateTime());
+
+        // 卸货过毛时间:获取节点里status=19的数据
+        KwtWaybillOrderNode orderNode2 = nodeList.stream()
+                .filter(node -> Objects.equals(node.getOrderStatus(), 19))
+                .max(Comparator.comparing(KwtWaybillOrderNode::getCreateTime))
+                .orElse(new KwtWaybillOrderNode());
+        resp.setUnLoadGrossTime(orderNode2 != null ? orderNode2.getCreateTime() : unLoadTicket.getUpdateTime());
+
         resp.setUnLoadTareAmount(unLoadTicket.getTareAmount());
         resp.setUnLoadGrossAmount(unLoadTicket.getGrossAmount());
         resp.setUnLoadAmount(unLoadTicket.getAmount());
         resp.setUnLoadTareAmountTime(unLoadTicket.getUpdateTime());
-        resp.setUnLoadGrossTime(unLoadTicket.getUpdateTime()); // todo 修改
+
         resp.setUnLoadPerson(unLoadGatekeeper.getGatekeeperName());
 
         resp.setDictId(forklift.getDictId());