Procházet zdrojové kódy

修改运单时间和货物名称

donglang před 3 týdny
rodič
revize
9aa0b67c9b

+ 36 - 11
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/app/WaybillOrderService.java

@@ -649,11 +649,13 @@ public class WaybillOrderService {
                 .collect(Collectors.toSet());
         //获取贸易订单
         List<OrderDetailVo> orderDetailVos = tradeOrderInfoService.queryByTradeOrderIds(tradeIds);
-        Map<Long, OrderDetailVo> tradeIdAndOrderDetailVoMap = Maps.newHashMap();
-        if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(orderDetailVos)){
-            tradeIdAndOrderDetailVoMap = orderDetailVos.stream()
-                    .collect(Collectors.toMap(OrderDetailVo::getId, Function.identity(), (x, y) -> x));
+        if (CollectionUtils.isEmpty(orderDetailVos)) {
+            log.info("当前车辆的贸易订单无数据,truckNo:{}", param.getTruckNo());
+            throw new BusinessPlatfromException(ErrorCodeEnum.TRADE_ORDER_NOT_FOUND, "当前车辆的贸易订单数据不存在");
         }
+        Map<Long, OrderDetailVo> tradeIdAndOrderDetailVoMap = orderDetailVos.stream()
+                    .collect(Collectors.toMap(OrderDetailVo::getId, Function.identity(), (x, y) -> x));
+
         Map<Long, List<KwtLogisticsOrder>> tradeIdAndLogOrderList = logOrderList.stream()
                 .collect(Collectors.groupingBy(KwtLogisticsOrder::getTOrderId));
         Map<Long, List<KwtWaybillOrderSubtask>> logisticsOrderIdAndSubtaskList = orderSubtaskList.stream()
@@ -668,6 +670,14 @@ public class WaybillOrderService {
         Map<Long, KwtLogisticsOrderGoods> logOrderIdAndGoodsMap = logOrderGoods.stream().collect(
                 Collectors.toMap(KwtLogisticsOrderGoods::getLOrderId, Function.identity(), (x, y) -> x));
 
+        //交易商品信息
+        List<Long> goodsIds = logOrderGoods.stream().map(KwtLogisticsOrderGoods::getGoodsId).distinct().collect(Collectors.toList());
+        if (CollectionUtils.isEmpty(goodsIds)) {
+            log.info("物流订单无关联商品信息,logOrderId:{}", JSON.toJSONString(logOrderIdList));
+            throw new BusinessPlatfromException(ErrorCodeEnum.LOGISTICS_ORDER_NOT_GOODS, "物流订单无关联商品信息");
+        }
+        Map<Long, KwpGoods> goodsIdAndGoodsMap = goodsInfoService.getGoodsByIds(goodsIds);
+
 
         //承运托运企业
         List<KwtLogisticsOrderUnit> logOrderUnits = logisticsOrderUnitRepository.queryByLogOrderIds(logOrderIdList);
@@ -691,12 +701,21 @@ public class WaybillOrderService {
                 Collectors.toMap(ticket -> ticket.getWOrderId() + "-" + ticket.getType(),
                         Function.identity(), (x, y) -> x));
 
-        Map<Long, OrderDetailVo> finalTradeIdAndOrderDetailVoMap = tradeIdAndOrderDetailVoMap;
+
+        //查询字典
+        List<SysDictResDto> sysDictResDtos = remoteSystemService.queryDictByType(DictTypeEnum.PRODUCT_NAME_TYPE.getType());
+        if (CollectionUtils.isEmpty(sysDictResDtos)){
+            log.info("品名类型字典数据不存在,truckNo:{}", param.getTruckNo());
+            throw new BusinessPlatfromException(ErrorCodeEnum.DATA_NOT_EXIST, "品名类型字典数据不存在");
+        }
+        Map<String, SysDictResDto> dictValueAndDictResDtoMap = sysDictResDtos.stream()
+                .collect(Collectors.toMap(SysDictResDto::getValue, Function.identity(), (x, y) -> x));
+
         List<WaybillOrderStatusResp> ordderList = records.stream().map(
                 billOrder -> {
                     return getWaybillOrderResp(billOrder, subtaskMap, logOrderMap, logOrderIdAndCirculateMap,
                             logOrderIdAndGoodsMap, logOrderIdAndUnitMap, logOrderIdAndAddressMap, ticketMap,
-                            finalTradeIdAndOrderDetailVoMap,tradeIdAndLogOrderList,logisticsOrderIdAndSubtaskList);
+                            tradeIdAndOrderDetailVoMap,tradeIdAndLogOrderList,logisticsOrderIdAndSubtaskList,dictValueAndDictResDtoMap, goodsIdAndGoodsMap);
                 }).collect(Collectors.toList());
         return ordderList;
     }
@@ -719,7 +738,9 @@ public class WaybillOrderService {
                                                        Map<String, KwtWaybillOrderTicket> ticketMap,
                                                        Map<Long, OrderDetailVo> tradeIdAndOrderDetailVoMap,
                                                        Map<Long, List<KwtLogisticsOrder>> tradeIdAndLogOrderList ,
-                                                       Map<Long, List<KwtWaybillOrderSubtask>> logisticsOrderIdAndSubtaskList) {
+                                                       Map<Long, List<KwtWaybillOrderSubtask>> logisticsOrderIdAndSubtaskList,
+                                                       Map<String, SysDictResDto> dictValueAndDictResDtoMap,
+                                                       Map<Long, KwpGoods> goodsIdAndGoodsMap) {
         WaybillOrderStatusResp wbOrderResp = new WaybillOrderStatusResp();
         wbOrderResp.setId(wbOrder.getId());
         wbOrderResp.setLogisticsOrderId(Optional.ofNullable(wbOrder.getLOrderId()).map(String::valueOf).orElse(null));
@@ -744,10 +765,14 @@ public class WaybillOrderService {
         wbOrderResp.setConsignCompanyId(Optional.ofNullable(consignEnt.getEntId()).map(String::valueOf).orElse(null));
         wbOrderResp.setConsignCompanyName(consignEnt.getFirmName());
 
-        //商品
+        //商品信息
         KwtLogisticsOrderGoods orderGoods = logOrderIdAndGoodsMap.getOrDefault(wbOrder.getLOrderId(), new KwtLogisticsOrderGoods());
-        wbOrderResp.setGoodsId(Optional.ofNullable(orderGoods.getId()).map(String::valueOf).orElse(null));
-        wbOrderResp.setGoodsName(orderGoods.getGoodsName());
+        KwpGoods goods = goodsIdAndGoodsMap.getOrDefault(orderGoods.getGoodsId(), new KwpGoods());
+        if (Objects.nonNull(goods)){
+            SysDictResDto sysDictResDto = dictValueAndDictResDtoMap.getOrDefault(goods.getGoodsType(), new SysDictResDto());
+            wbOrderResp.setGoodsId(Optional.ofNullable(orderGoods.getId()).map(String::valueOf).orElse(null));
+            wbOrderResp.setGoodsName(goods.getName()+ "/" +sysDictResDto.getLabel()+"/"+ goods.getSpec());
+        }
 
         //装货地址
         KwtLogisticsOrderAddress shipmentAddress = logOrderIdAndAddressMap.getOrDefault(wbOrder.getLOrderId() + "-" + AddressTypeEnum.SHIPMENT.getCode(), new KwtLogisticsOrderAddress());
@@ -781,7 +806,7 @@ public class WaybillOrderService {
 
         //派车信息
         KwtLogisticsOrderCirculate orderCirculate = logOrderIdAndCirculateMap.getOrDefault(wbOrder.getLOrderId(), new KwtLogisticsOrderCirculate());
-        wbOrderResp.setSendTime(DateUtils.format(orderCirculate.getCreateTime(), DateUtils.DATE_PATTERN));
+        wbOrderResp.setSendTime(DateUtils.format(orderCirculate.getCreateTime(), DateUtils.DATE_TIME_PATTERN));
         //法定载重
         RTruckVo truckByTruckNo = remoteFleetService.findTruckByTruckNo(orderCirculate.getTruckNo());
         if (truckByTruckNo != null) {