Просмотр исходного кода

查询企业双方是否存在合作关系(物流订单业务)接口改造

lengfaqiang 2 лет назад
Родитель
Сommit
d8965e753a

+ 3 - 2
sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/dubbo/TransportDubboService.java

@@ -95,10 +95,11 @@ public interface TransportDubboService {
     /**
      * 根据企业id 判断是否存在未完成完结的物流订单
      *
-     * @param entId 企业id
+     * @param consignEntId 托运企业id
+     * @param acceptCarriageEntId 承运企业id
      * @return   根据data是否为空判断 是否存在未完结订单  空  不存在  不为空  存在
      */
-    HttpResult checkLogisticsOrderIsFinishByEntId(Long entId);
+    HttpResult checkLogisticsOrderIsFinishByEntId(Long consignEntId,Long acceptCarriageEntId);
 
     /**
      * 合同变更,修改物流订单状态【仅仅支持待签约变更为已签约】  0 已签约 1待签约

+ 2 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderMapper.java

@@ -6,7 +6,6 @@ import com.sckw.transport.api.model.dto.AddressResDTO;
 import com.sckw.transport.api.model.dto.LogisticsOrderDTO;
 import com.sckw.transport.api.model.vo.LogisticsOrderVO;
 import com.sckw.transport.model.KwtLogisticsOrder;
-import com.sckw.transport.model.KwtWaybillOrder;
 import com.sckw.transport.model.param.AcceptCarriageOrderQuery;
 import com.sckw.transport.model.param.DriverParam;
 import com.sckw.transport.model.param.LogisticsOrderParam;
@@ -227,6 +226,8 @@ public interface KwtLogisticsOrderMapper extends BaseMapper<KwtLogisticsOrder> {
 
     String getMaxOrderNoByDate(@Param("date") Date date);
 
+    List<String> checkLogisticsOrderIsFinishByEntId(@Param("consignEntId") Long consignEntId, @Param("acceptCarriageEntId") Long acceptCarriageEntId, @Param("orderStatus") List<Integer> orderStatus);
+
 //    List<TableTops> countAppLogisticsOrderListByStatus(@Param("type") String type,@Param("entId") Long entId
 //    );
 }

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

@@ -1274,7 +1274,12 @@ public class AcceptCarriageOrderService {
         if (logisticsOrder == null) {
             throw new RuntimeException("承运订单-完结订单-物流单据不存在!");
         }
-        if (logisticsOrder.getLoadAmount().compareTo(orderFinishDTO.getLoadAmount()) > 0) {
+//        BigDecimal totalLoadAmount = logisticsOrder.getTotalLoadAmount() == null ? new BigDecimal("0.00") : logisticsOrder.getTotalLoadAmount();
+//        if (totalLoadAmount.compareTo(orderFinishDTO.getLoadAmount()) < 0) {
+//            throw new BusinessException("完结订单,实装量不能大于分配量");
+//        }
+        BigDecimal amount = logisticsOrder.getAmount() == null ? new BigDecimal("0.00") : logisticsOrder.getAmount();
+        if (amount.compareTo(orderFinishDTO.getLoadAmount()) < 0){
             throw new BusinessException("完结订单,实装量不能大于分配量");
         }
         /**订单状态验证*/

+ 6 - 4
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java

@@ -736,10 +736,12 @@ public class ConsignOrderService {
         if (logisticsOrder == null) {
             throw new BusinessException("采购订单-完结订单-物流单据不存在!");
         }
-        if (logisticsOrder.getTotalLoadAmount().compareTo(orderFinishDTO.getLoadAmount()) > 0) {
-            throw new BusinessException("完结订单,实装量不能大于分配量");
-        }
-        if (logisticsOrder.getAmount().compareTo(orderFinishDTO.getLoadAmount()) > 0) {
+//        BigDecimal totalLoadAmount = logisticsOrder.getTotalLoadAmount() == null ? new BigDecimal("0.00") : logisticsOrder.getTotalLoadAmount();
+//        if (totalLoadAmount.compareTo(orderFinishDTO.getLoadAmount()) < 0) {
+//            throw new BusinessException("完结订单,实装量不能大于分配量");
+//        }
+        BigDecimal amount = logisticsOrder.getAmount() == null ? new BigDecimal("0.00") : logisticsOrder.getAmount();
+        if (amount.compareTo(orderFinishDTO.getLoadAmount()) < 0){
             throw new BusinessException("完结订单,实装量不能大于分配量");
         }
         /**订单状态验证*/

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

@@ -1170,7 +1170,12 @@ public class LogisticsConsignmentService {
         if (logisticsOrder == null) {
             throw new BusinessException("采购订单-完结订单-物流单据不存在!");
         }
-        if (logisticsOrder.getLoadAmount().compareTo(orderFinishDTO.getLoadAmount()) > 0) {
+//        BigDecimal totalLoadAmount = logisticsOrder.getTotalLoadAmount() == null ? new BigDecimal("0.00") : logisticsOrder.getTotalLoadAmount();
+//        if (totalLoadAmount.compareTo(orderFinishDTO.getLoadAmount()) < 0) {
+//            throw new BusinessException("完结订单,实装量不能大于分配量");
+//        }
+        BigDecimal amount = logisticsOrder.getAmount() == null ? new BigDecimal("0.00") : logisticsOrder.getAmount();
+        if (amount.compareTo(orderFinishDTO.getLoadAmount()) < 0){
             throw new BusinessException("完结订单,实装量不能大于分配量");
         }
         /**订单状态验证*/

+ 11 - 20
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/dubbo/TransportDubboServiceImpl.java

@@ -372,15 +372,15 @@ public class TransportDubboServiceImpl implements TransportDubboService {
         return false;
     }
 
+    /**
+     * @param consignEntId        托运企业id
+     * @param acceptCarriageEntId 承运企业id
+     * @return
+     */
     @Override
-    public HttpResult checkLogisticsOrderIsFinishByEntId(Long entId) {
-        HttpResult httpResult = new HttpResult();
-        httpResult.setCode(HttpStatus.SUCCESS_CODE);
-        List<KwtLogisticsOrderUnit> logisticsOrderUnits = logisticsOrderUnitMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrderUnit>()
-                .eq(KwtLogisticsOrderUnit::getTopEntId, entId)
-        );
-        if (CollectionUtils.isEmpty(logisticsOrderUnits)) {
-            return HttpResult.ok();
+    public HttpResult checkLogisticsOrderIsFinishByEntId(Long consignEntId, Long acceptCarriageEntId) {
+        if (Objects.isNull(consignEntId) || Objects.isNull(acceptCarriageEntId)) {
+            throw new BusinessException("企业id不能为空");
         }
         List<Integer> orderStatus = new ArrayList<>();
         orderStatus.add(LogisticsOrderEnum.TO_BE_PLANNED.getCode());
@@ -389,18 +389,9 @@ public class TransportDubboServiceImpl implements TransportDubboService {
         orderStatus.add(LogisticsOrderEnum.IN_TRANSIT.getCode());
         orderStatus.add(LogisticsOrderEnum.HAVE_FINISHED.getCode());
         orderStatus.add(LogisticsOrderEnum.HAVE_RECONCILED.getCode());
-        logisticsOrderUnits.stream().map(KwtLogisticsOrderUnit::getLOrderId).distinct().collect(Collectors.toList());
-        List<Long> collect = logisticsOrderUnits.stream().map(KwtLogisticsOrderUnit::getLOrderId).distinct().collect(Collectors.toList());
-        List<KwtLogisticsOrder> orderList = logisticsOrderMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrder>()
-                .in(KwtLogisticsOrder::getId, collect)
-                .in(KwtLogisticsOrder::getStatus, orderStatus)
-                .eq(KwtLogisticsOrder::getDelFlag, NumberConstant.ZERO)
-        );
-        if (CollectionUtils.isNotEmpty(orderList)) {
-            List<String> orderNo = orderList.stream().map(KwtLogisticsOrder::getLOrderNo).collect(Collectors.toList());
-            httpResult.setData(orderNo);
-        }
-        return httpResult;
+//        orderStatus.add(LogisticsOrderEnum.HAVE_ALREADY_SETTLED.getCode());
+        List<String> logisticsNo = logisticsOrderMapper.checkLogisticsOrderIsFinishByEntId(consignEntId, acceptCarriageEntId, orderStatus);
+        return HttpResult.ok(logisticsNo);
     }
 
 

+ 28 - 0
sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderMapper.xml

@@ -885,4 +885,32 @@
     <select id="getMaxOrderNoByDate" resultType="java.lang.String">
         SELECT MAX(l_order_no) FROM kwt_logistics_order WHERE create_time &gt;= #{date};
     </select>
+    <select id="checkLogisticsOrderIsFinishByEntId" resultType="java.lang.String">
+        SELECT
+        a.l_order_no
+        FROM
+        kwt_logistics_order a
+        INNER JOIN kwt_logistics_order_unit b ON a.id = b.l_order_id
+        AND a.del_flag = 0
+        AND b.del_flag = 0
+        AND b.unit_type = 1
+        INNER JOIN kwt_logistics_order_unit c ON a.id = c.l_order_id
+        AND a.del_flag = 0
+        AND c.del_flag = 0
+        AND c.unit_type = 2
+        <where>
+            <if test="consignEntId != null and consignEntId != ''">
+                and b.top_ent_id = #{consignEntId}
+            </if>
+            <if test="acceptCarriageEntId != null and acceptCarriageEntId != ''">
+                and c.top_ent_id = #{acceptCarriageEntId}
+            </if>
+            <if test="orderStatus != null and orderStatus.size() > 0">
+                and a.status in
+                <foreach collection="orderStatus" separator="," open="(" item="item" close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+    </select>
 </mapper>

+ 2 - 2
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderMapper.xml

@@ -448,10 +448,10 @@
     <select id="selectOrderByOrderId" resultType="java.util.Map">
         SELECT COUNT(id) total,SUM(IFNULL(entrust_amount,0)) AS amount
         FROM
-        sckw_transport.kwt_waybill_order
+        kwt_waybill_order
         WHERE
         l_order_id = #{orderId}
-        AND type = #{type}
+        AND type = #{type} and del_flag = 0
         <if test="statusList != null and statusList.size() > 0">
             and status in
             <foreach collection="statusList" open="(" close=")" separator="," item="item">