فهرست منبع

提交新增合同文件校验

chenxiaofei 1 ماه پیش
والد
کامیت
5df8e62e1b

+ 1 - 0
sckw-modules-api/sckw-product-api/src/main/java/com/sckw/product/api/dubbo/GoodsInfoService.java

@@ -75,4 +75,5 @@ public interface GoodsInfoService {
     List<Long> getGoodsByGoodsNameAndTaxRate(String goodsName, String goodsTaxRate);
 
     List<KwpGoods> getGoodsByNameTypeDesc(String goodsName, String goodsType, String goodsSpec);
+    List<KwpGoods> findGoodsByGoodsName(String goodsName);
 }

+ 15 - 0
sckw-modules/sckw-product/src/main/java/com/sckw/product/dubbo/GoodsInfoServiceImpl.java

@@ -110,6 +110,21 @@ public class GoodsInfoServiceImpl implements GoodsInfoService {
     @Override
     public List<KwpGoods> getGoodsByNameTypeDesc(String goodsName, String goodsType, String goodsSpec) {
         List<com.sckw.product.model.KwpGoods> kwpGoods = kwpGoodsRepository.queryByGoodsNameAndTypeAndDesc(goodsName, goodsType, goodsSpec);
+        if (org.apache.commons.collections4.CollectionUtils.isEmpty(kwpGoods)){
+            return Collections.emptyList();
+        }
+        return kwpGoods.stream()
+                .map(GoodsInfoServiceImpl::getKwpGoods)
+                .collect(Collectors.toList());
+    }
+
+    @Override
+    public List<KwpGoods> findGoodsByGoodsName(String goodsName) {
+        List<com.sckw.product.model.KwpGoods> kwpGoods = kwpGoodsRepository.queryByGoodsName(goodsName);
+        if (org.apache.commons.collections4.CollectionUtils.isEmpty(kwpGoods)){
+            return Collections.emptyList();
+        }
+
         return kwpGoods.stream()
                 .map(GoodsInfoServiceImpl::getKwpGoods)
                 .collect(Collectors.toList());

+ 6 - 0
sckw-modules/sckw-product/src/main/java/com/sckw/product/repository/KwpGoodsRepository.java

@@ -32,4 +32,10 @@ public class KwpGoodsRepository extends ServiceImpl<KwpGoodsMapper, KwpGoods> {
                 .like(StringUtils.isNotBlank(goodsType),KwpGoods::getGoodsType,goodsType)
                 .like(StringUtils.isNotBlank(goodsSpec),KwpGoods::getSpec,goodsSpec));
     }
+
+    public List<KwpGoods> queryByGoodsName(String goodsName) {
+        return list(Wrappers.<KwpGoods>lambdaQuery()
+                .eq(KwpGoods::getDelFlag,0)
+                .like(StringUtils.isNotBlank(goodsName),KwpGoods::getName,goodsName));
+    }
 }

+ 5 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/WaybillOrderReq.java

@@ -94,4 +94,9 @@ public class WaybillOrderReq extends PageReq implements Serializable {
      */
     @Schema(description = "卸货结束时间")
     private String unloadEndTime;
+    /**
+     * 状态
+     */
+    @Schema(description = "状态")
+    private String status;
 }

+ 15 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/WaybillOrderResp.java

@@ -26,6 +26,16 @@ public class WaybillOrderResp implements Serializable {
      */
     @Schema(description = "运单号")
     private String waybillOrderNo;
+    /**
+     * 物流订单id
+     */
+    @Schema(description = "物流订单id")
+    private String logisticsOrderId;
+    /**
+     * 物流订单编号
+     */
+    @Schema(description = "物流订单编号")
+    private String logisticsOrderNo;
     /**
      * 托运单位id
      */
@@ -106,6 +116,11 @@ public class WaybillOrderResp implements Serializable {
      */
     @Schema(description = "离场时间")
     private String offsiteTime;
+    /**
+     * 卸货时间
+     */
+    @Schema(description = "卸货时间")
+    private String unloadingTime;
     /**
      * 状态
      */

+ 8 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtLogisticsOrderGoodsRepository.java

@@ -7,6 +7,7 @@ import com.sckw.transport.model.KwtLogisticsOrderGoods;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
+import java.util.Set;
 
 /**
  * @author :chenXiaoFei
@@ -37,4 +38,11 @@ public class KwtLogisticsOrderGoodsRepository extends ServiceImpl<KwtLogisticsOr
                 .last("limit 1")
         );
     }
+
+    public List<KwtLogisticsOrderGoods> queryByGoodsIds(Set<Long> goodsIds) {
+        return list(Wrappers.<KwtLogisticsOrderGoods>lambdaQuery()
+                .eq(KwtLogisticsOrderGoods::getDelFlag,0)
+                .in(KwtLogisticsOrderGoods::getGoodsId,goodsIds)
+        );
+    }
 }

+ 4 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtWaybillOrderSubtaskRepository.java

@@ -59,13 +59,15 @@ public class KwtWaybillOrderSubtaskRepository extends ServiceImpl<KwtWaybillOrde
                 .eq(KwtWaybillOrderSubtask::getLOrderId,logOrderId));
     }
 
-    public IPage<KwtWaybillOrderSubtask> queryByPage(Long entId, Set<Long> logOrderIds, Set<Long> billOrderIds,
+    public IPage<KwtWaybillOrderSubtask> queryByPage(Set<Long> entIds, Set<Long> logOrderIds, Set<Long> billOrderIds,
+                                                     Integer status,
                                                      int pageNum,
                                                      int pageSize) {
         return page(new Page<>(pageNum, pageSize),
                 Wrappers.<KwtWaybillOrderSubtask>lambdaQuery()
                         .eq(BaseModel::getDelFlag,0)
-                        .eq(Objects.nonNull(entId),KwtWaybillOrderSubtask::getEntId, entId)
+                        .eq(Objects.nonNull( status),KwtWaybillOrderSubtask::getStatus, status)
+                        .in(CollectionUtils.isNotEmpty(entIds),KwtWaybillOrderSubtask::getEntId, entIds)
                         .in(CollectionUtils.isNotEmpty(logOrderIds),KwtWaybillOrderSubtask::getLOrderId, logOrderIds)
                         .in(CollectionUtils.isNotEmpty(billOrderIds),KwtWaybillOrderSubtask::getWOrderId, billOrderIds)
                         .orderByDesc(BaseModel::getCreateTime)

+ 10 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtWaybillOrderTicketRepository.java

@@ -6,6 +6,7 @@ import com.sckw.transport.dao.KwtWaybillOrderTicketMapper;
 import com.sckw.transport.model.KwtWaybillOrderTicket;
 import org.springframework.stereotype.Repository;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Set;
 
@@ -28,4 +29,13 @@ public class KwtWaybillOrderTicketRepository extends ServiceImpl<KwtWaybillOrder
                 .eq(KwtWaybillOrderTicket::getWOrderId, kwtWaybillOrderTicket.getWOrderId())
                 .eq(KwtWaybillOrderTicket::getType, type));
     }
+
+    public List<KwtWaybillOrderTicket> queryByOperateTime(Date loadStartTime, Date loadEndTime,Integer  type) {
+        return list(Wrappers.<KwtWaybillOrderTicket>lambdaQuery()
+                .eq(KwtWaybillOrderTicket::getDelFlag,0)
+                .eq(KwtWaybillOrderTicket::getType, type)
+                .between(KwtWaybillOrderTicket::getOperateTime, loadStartTime, loadEndTime));
+    }
+
+
 }

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtLogisticsConsignmentService.java

@@ -2884,7 +2884,7 @@ public class KwtLogisticsConsignmentService {
         KwtLogisticsOrder updateLogisticsOrder = new KwtLogisticsOrder();
         updateLogisticsOrder.setId(logOrderId);
 
-        if (!Arrays.asList(LogisticsOrderV1Enum.WAIT_DELIVERY, LogisticsOrderV1Enum.HAVE_RECONCILED.getCode()).contains(logisticsOrder.getStatus())){
+        if (!Arrays.asList(LogisticsOrderV1Enum.WAIT_DELIVERY.getCode(), LogisticsOrderV1Enum.IN_TRANSIT.getCode()).contains(logisticsOrder.getStatus())){
             throw new BusinessException("该物流订单状态不能进行完结");
         }
         if (Objects.equals(logisticsOrder.getStatus(), LogisticsOrderV1Enum.WAIT_DELIVERY.getCode())){

+ 115 - 16
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderV1Service.java

@@ -2936,17 +2936,29 @@ public class KwtWaybillOrderV1Service {
 
     public PageDataResult<WaybillOrderResp> findBillOrderListPage(WaybillOrderReq req) {
         log.info("查询订单列表请求阐述:{}",JSON.toJSONString( req));
-
+        Integer status = org.apache.commons.lang3.StringUtils.isNoneBlank(req.getStatus()) ?
+                Integer.parseInt(req.getStatus()) : null;
+        Set<Long> allEnt = getAllEnt(req);
         //物流订单号集合
         Set<Long> logOrderIds = getLogOrderIds(req);
+        boolean b1 = !org.apache.commons.lang3.StringUtils.isAllBlank(req.getLogisticsOrderNo(), req.getGoodsName(),
+                req.getCarrierId(), req.getConsignorId());
+        if(org.apache.commons.collections4.CollectionUtils.isEmpty(logOrderIds) && b1){
+            return PageDataResult.empty(req.getPageNum(), req.getPageSize());
+        }
 
         //查询运单信息
         //运单id集合
         Set<Long> billOrderIds = getBillOrderIds(req);
+        boolean b = Stream.of(req.getWaybillNo(), req.getTruckNo(), req.getDriverName(), req.getPhone(),
+                        req.getLoadStartTime(),req.getLoadEndTime(),req.getUnloadStartTime(),req.getUnloadEndTime())
+                        .anyMatch(StringUtils::isNotBlank);
+        if (org.apache.commons.collections4.CollectionUtils.isEmpty(billOrderIds) && b){
+            return PageDataResult.empty(req.getPageNum(), req.getPageSize());
+        }
 
-        Long entId = StringUtils.isNotBlank(req.getEntId()) ? Long.parseLong(req.getEntId()) : null;
-        IPage<KwtWaybillOrderSubtask> page = waybillOrderSubtaskRepository.queryByPage(entId ,logOrderIds,
-                billOrderIds, req.getPageNum(), req.getPageSize());
+        IPage<KwtWaybillOrderSubtask> page = waybillOrderSubtaskRepository.queryByPage(allEnt ,logOrderIds,
+                billOrderIds,status, req.getPageNum(), req.getPageSize());
         List<KwtWaybillOrderSubtask> records = page.getRecords();
         if (org.apache.commons.collections4.CollectionUtils.isEmpty(records)){
             return PageDataResult.empty(req.getPageNum(), req.getPageSize());
@@ -2993,18 +3005,30 @@ public class KwtWaybillOrderV1Service {
             goodsIds = logisticsOrderGoods.stream()
                     .map(KwtLogisticsOrderGoods::getGoodsId).distinct().collect(Collectors.toList());
             logOrderIdAndGoodsIdMap =
-                    logisticsOrderGoods.stream().collect(Collectors.toMap(KwtLogisticsOrderGoods::getId, Function.identity(),
+                    logisticsOrderGoods.stream().collect(Collectors.toMap(KwtLogisticsOrderGoods::getLOrderId,
+                            Function.identity(),
                     (k1, k2) -> k1));
         }
         //查询商品信息
         Map<Long, KwpGoods> kwpGoodsMap = goodsInfoService.getGoodsByIds(goodsIds);
 
-
+        //查询订单信息
+        List<KwtLogisticsOrder> kwtLogisticsOrders = kwtLogisticsOrderRepository.queryByLogisticsOrderIds(new ArrayList<>(logicsOrderIds));
+        Map<Long, KwtLogisticsOrder> logIdAndOrderMap =  Maps.newHashMap();
+        if (CollectionUtils.isNotEmpty(kwtLogisticsOrders)){
+           logIdAndOrderMap = kwtLogisticsOrders.stream()
+                   .collect(Collectors.toMap(KwtLogisticsOrder::getId,
+                             Function.identity(), (k1,
+                                                                                                                                                        k2) -> k1));
+        }
         Map<String, KwtWaybillOrderAddress> finalSubOrderIdAddressTypeKeyAndAddressMap = subOrderIdAddressTypeKeyAndAddressMap;
         Map<Long, KwtLogisticsOrderGoods> finalLogOrderIdAndGoodsIdMap = logOrderIdAndGoodsIdMap;
+        Map<Long, KwtLogisticsOrder> finalLogIdAndOrderMap = logIdAndOrderMap;
         List<WaybillOrderResp> resps = records.stream()
-                .map(record -> getWaybillOrderResp(record, waybillOrderIdAndBillOrderMap, logOrderIdUnitTypeKeyAndUnitMap, finalLogOrderIdAndGoodsIdMap, kwpGoodsMap, finalSubOrderIdAddressTypeKeyAndAddressMap, subBillIdAddressIdKeyAndOrderTrackMap))
+                .map(record -> getWaybillOrderResp(record, waybillOrderIdAndBillOrderMap,
+                        logOrderIdUnitTypeKeyAndUnitMap, finalLogOrderIdAndGoodsIdMap, kwpGoodsMap, finalSubOrderIdAddressTypeKeyAndAddressMap, subBillIdAddressIdKeyAndOrderTrackMap, finalLogIdAndOrderMap))
                 .collect(Collectors.toList());
+
         return PageDataResult.of(page,resps);
     }
 
@@ -3018,6 +3042,29 @@ public class KwtWaybillOrderV1Service {
         }
         return waybillOrderIdAndBillOrderMap;
     }
+    @NotNull
+    private Set<Long> getAllEnt(WaybillOrderReq req) {
+        Set<Long> allEnt = Sets.newHashSet();
+        //根据企业类型查询企业
+        if (StringUtils.isBlank(req.getEntId())){
+            req.setEntId(String.valueOf(LoginUserHolder.getEntId()));
+        }
+
+        if (StringUtils.isBlank(req.getEntId())){
+            return allEnt;
+        }
+        allEnt.add( Long.parseLong(req.getEntId()));
+        EntCacheResDto entCacheResDto = remoteSystemService.queryEntTreeById(Long.parseLong(req.getEntId()));
+        if (Objects.nonNull(entCacheResDto)) {
+            EntCacheResDto entCacheResDto1 = remoteSystemService.queryEntTreeById(entCacheResDto.getId());
+            List<EntCacheResDto> child = entCacheResDto1.getChild();
+            if (CollectionUtils.isNotEmpty(child)) {
+                allEnt.addAll(child.stream()
+                        .map(EntCacheResDto::getId).toList());
+            }
+        }
+        return allEnt;
+    }
 
     @NotNull
     private Map<String, KwtLogisticsOrderUnit> getStringKwtLogisticsOrderUnitMap(List<Long> logicsOrderIds) {
@@ -3070,12 +3117,30 @@ public class KwtWaybillOrderV1Service {
             entIds.add(Long.parseLong(req.getCarrierId()));
         }
         //根据单位查询订单id
-        List<KwtLogisticsOrderUnit> unitList = kwtLogisticsOrderUnitRepository.queryByEntIds(entIds);
-        if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(unitList)){
-            logOrderIds.addAll(unitList.stream()
-                    .map(KwtLogisticsOrderUnit::getLOrderId)
-                    .collect(Collectors.toSet())) ;
+        if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(entIds)){
+            List<KwtLogisticsOrderUnit> unitList = kwtLogisticsOrderUnitRepository.queryByEntIds(entIds);
+            if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(unitList)){
+                logOrderIds.addAll(unitList.stream()
+                        .map(KwtLogisticsOrderUnit::getLOrderId)
+                        .collect(Collectors.toSet())) ;
+            }
+         }
+        List<KwtLogisticsOrderGoods> logisticsOrderGoods =null ;
+        if (org.apache.commons.lang3.StringUtils.isNotBlank(req.getGoodsName())){
+            List<KwpGoods> goods = goodsInfoService.findGoodsByGoodsName(req.getGoodsName());
+            if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(goods)){
+                Set<Long> goodsIds = goods.stream()
+                        .map(KwpGoods::getId)
+                        .collect(Collectors.toSet());
+               logisticsOrderGoods = kwtLogisticsOrderGoodsRepository.queryByGoodsIds(goodsIds);
+            }
+        }
+        if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(logisticsOrderGoods)){
+            logOrderIds.addAll(logisticsOrderGoods.stream()
+                    .map(KwtLogisticsOrderGoods::getLOrderId)
+                    .collect(Collectors.toSet()));
         }
+
         return logOrderIds;
     }
 
@@ -3092,18 +3157,48 @@ public class KwtWaybillOrderV1Service {
                         .collect(Collectors.toSet()));
             }
         }
+        if (org.apache.commons.lang3.StringUtils.isNoneBlank(req.getLoadStartTime(),req.getLoadEndTime())){
+            Date loadStartTime = DateUtils.formatDate(req.getLoadStartTime());
+            Date loadEndTime = DateUtils.formatDate(req.getLoadEndTime());
+            List<KwtWaybillOrderTicket> tickets = kwtWaybillOrderTicketRepository.queryByOperateTime(loadStartTime,
+                    loadEndTime,1);
+            if (org.apache.commons.collections4.CollectionUtils.isNotEmpty( tickets)){
+                billOrderIds.addAll(tickets.stream()
+                        .map(KwtWaybillOrderTicket::getWOrderId)
+                        .collect(Collectors.toSet()));
+            }
+        }
+
+        if (org.apache.commons.lang3.StringUtils.isNoneBlank(req.getUnloadStartTime(),req.getUnloadEndTime())){
+            Date unloadStartTime = DateUtils.formatDate(req.getUnloadStartTime());
+            Date unloadEndTime = DateUtils.formatDate(req.getUnloadEndTime());
+            List<KwtWaybillOrderTicket> tickets = kwtWaybillOrderTicketRepository.queryByOperateTime(unloadStartTime,
+                    unloadEndTime,2);
+            if (org.apache.commons.collections4.CollectionUtils.isNotEmpty( tickets)){
+                billOrderIds.addAll(tickets.stream()
+                        .map(KwtWaybillOrderTicket::getWOrderId)
+                        .collect(Collectors.toSet()));
+            }
+        }
         return billOrderIds;
     }
 
     @NotNull
     private static WaybillOrderResp getWaybillOrderResp(KwtWaybillOrderSubtask record, Map<Long, KwtWaybillOrder> finalWaybillOrderIdAndBillOrderMap,
-                                                        Map<String, KwtLogisticsOrderUnit> finalLogOrderIdUnitTypeKeyAndUnitMap, Map<Long, KwtLogisticsOrderGoods> finalLogOrderIdAndGoodsIdMap, Map<Long, KwpGoods> kwpGoodsMap
-            , Map<String, KwtWaybillOrderAddress> finalSubOrderIdAddressTypeKeyAndAddressMap, Map<String, KwtWaybillOrderTicket> finalSubBillIdAddressIdKeyAndOrderTrackMap) {
+                                                        Map<String, KwtLogisticsOrderUnit> finalLogOrderIdUnitTypeKeyAndUnitMap,
+                                                        Map<Long, KwtLogisticsOrderGoods> finalLogOrderIdAndGoodsIdMap,
+                                                        Map<Long, KwpGoods> kwpGoodsMap,
+                                                        Map<String, KwtWaybillOrderAddress> finalSubOrderIdAddressTypeKeyAndAddressMap,
+                                                        Map<String, KwtWaybillOrderTicket> finalSubBillIdAddressIdKeyAndOrderTrackMap,
+                                                        Map<Long, KwtLogisticsOrder> finalLogIdAndOrderMap) {
         WaybillOrderResp waybillOrderResp = new WaybillOrderResp();
         KwtWaybillOrder billOrder = finalWaybillOrderIdAndBillOrderMap.getOrDefault(record.getWOrderId(),
                 new KwtWaybillOrder());
         waybillOrderResp.setWaybillOrderId(String.valueOf(billOrder.getId()));
         waybillOrderResp.setWaybillOrderNo(billOrder.getWOrderNo());
+        waybillOrderResp.setLogisticsOrderId(String.valueOf(record.getLOrderId()));
+        KwtLogisticsOrder order = finalLogIdAndOrderMap.getOrDefault(record.getLOrderId(), new KwtLogisticsOrder());
+        waybillOrderResp.setLogisticsOrderNo(order.getLOrderNo());
         KwtLogisticsOrderUnit consignUnit = finalLogOrderIdUnitTypeKeyAndUnitMap.getOrDefault(record.getLOrderId() + "-" + NumberConstant.ONE,
                 new KwtLogisticsOrderUnit());
         waybillOrderResp.setConsignUnitId(String.valueOf(consignUnit.getEntId()));
@@ -3120,8 +3215,10 @@ public class KwtWaybillOrderV1Service {
 
         KwtLogisticsOrderGoods goods = finalLogOrderIdAndGoodsIdMap.getOrDefault(lOrderId,
                 new KwtLogisticsOrderGoods());
-        KwpGoods kwpGoods = kwpGoodsMap.getOrDefault(goods.getGoodsId(), new KwpGoods());
-        waybillOrderResp.setGoodsName(kwpGoods.getName()+"/"+kwpGoods.getGoodsType()+"/"+kwpGoods.getSpec());
+        KwpGoods kwpGoods = kwpGoodsMap.get(goods.getGoodsId());
+        if (Objects.nonNull(kwpGoods)){
+            waybillOrderResp.setGoodsName(kwpGoods.getName()+"/"+kwpGoods.getGoodsType()+"/"+kwpGoods.getSpec());
+        }
         waybillOrderResp.setTaskNum(Objects.nonNull(billOrder.getEntrustAmount()) ?
                 billOrder.getEntrustAmount().setScale(2, RoundingMode.HALF_UP).toPlainString() : "0.00");
         waybillOrderResp.setLoadingNetWeight(Objects.nonNull(billOrder.getLoadAmount()) ?
@@ -3145,7 +3242,9 @@ public class KwtWaybillOrderV1Service {
                 finalSubBillIdAddressIdKeyAndOrderTrackMap.getOrDefault(record.getId() + "-" + loadingAdd.getId(),
                         new KwtWaybillOrderTicket());
         waybillOrderResp.setLoadingTime(DateUtils.format(loadTrack.getOperateTime(),DateUtils.DATE_TIME_PATTERN));
+        //todo  cxf
         waybillOrderResp.setOffsiteTime(DateUtils.format(unloadTrack.getOperateTime(),DateUtils.DATE_TIME_PATTERN));
+        waybillOrderResp.setUnloadingTime(DateUtils.format(unloadTrack.getOperateTime(),DateUtils.DATE_TIME_PATTERN));
         waybillOrderResp.setStatus(String.valueOf(record.getStatus()));
         waybillOrderResp.setStatusDesc(CarWaybillV1Enum.geDesc(record.getStatus()));
         return waybillOrderResp;