فهرست منبع

新增原矿运输是否可以放行接口

donglang 1 ماه پیش
والد
کامیت
1a59bd6628

+ 15 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/enterpriseApp/AppGatekeeperController.java

@@ -4,6 +4,7 @@ package com.sckw.transport.controller.enterpriseApp;
 import com.sckw.core.web.response.BaseResult;
 import com.sckw.core.web.response.result.PageDataResult;
 import com.sckw.transport.model.param.forklift.reponse.GatekeeperOrderResp;
+import com.sckw.transport.model.param.forklift.request.GatekeeperOrderIsPassParam;
 import com.sckw.transport.model.param.forklift.request.GatekeeperOrderPassParam;
 import com.sckw.transport.model.param.forklift.request.GatekeeperOrderQueryParam;
 import com.sckw.transport.model.vo.StatisticsWaybillResp;
@@ -70,4 +71,18 @@ public class AppGatekeeperController {
         return BaseResult.success();
     }
 
+
+    /**
+     * 是否放行
+     *
+     * @param param
+     * @return
+     */
+    @Operation(summary = "放行", description = "放行")
+    @PostMapping("/isPass")
+    public BaseResult isPass(@RequestBody @Valid GatekeeperOrderIsPassParam param){
+        Boolean isPass = gatekeeperOrderService.checkIsPass(param);
+        return BaseResult.success(isPass);
+    }
+
 }

+ 29 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/forklift/request/GatekeeperOrderIsPassParam.java

@@ -0,0 +1,29 @@
+package com.sckw.transport.model.param.forklift.request;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author :donglang
+ * @version :1.0
+ * @description :
+ * @create :2026-01-05 08:59:00
+ */
+@Data
+public class GatekeeperOrderIsPassParam implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -767569553526384839L;
+
+    /**
+     * 车牌号
+     */
+    @Schema(description = "车牌号")
+    @NotBlank(message = "车牌号不能为空")
+    private String truckNo;
+
+}

+ 7 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtWaybillOrderRepository.java

@@ -358,4 +358,11 @@ public class KwtWaybillOrderRepository extends ServiceImpl<KwtWaybillOrderMapper
         return page(page,wrapper);
     }
 
+    public List<KwtWaybillOrder> findWbOrderByTruckNo(String truckNo) {
+        return list(Wrappers.<KwtWaybillOrder>lambdaQuery()
+                .eq(KwtWaybillOrder::getDelFlag,0)
+                .eq(KwtWaybillOrder::getTruckNo,truckNo)
+                .orderByDesc(KwtWaybillOrder::getId));
+    }
+
 }

+ 36 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/app/GatekeeperOrderService.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.common.collect.Lists;
 import com.sckw.contract.api.RemoteContractService;
 import com.sckw.core.common.enums.enums.ErrorCodeEnum;
 import com.sckw.core.exception.BusinessPlatfromException;
@@ -23,6 +24,7 @@ import com.sckw.system.api.RemoteSystemService;
 import com.sckw.transport.model.*;
 import com.sckw.transport.model.enuma.WeighbridgeTypeEnum;
 import com.sckw.transport.model.param.forklift.reponse.GatekeeperOrderResp;
+import com.sckw.transport.model.param.forklift.request.GatekeeperOrderIsPassParam;
 import com.sckw.transport.model.param.forklift.request.GatekeeperOrderPassParam;
 import com.sckw.transport.model.param.forklift.request.GatekeeperOrderQueryParam;
 import com.sckw.transport.model.vo.StatisticsWaybillResp;
@@ -751,5 +753,39 @@ public class GatekeeperOrderService {
         log.info("[门卫放行]记录节点轨迹成功,节点ID:{}", node.getId());
     }
 
+    /**
+     * 校验是否可放行
+     * @param gatekeeper
+     */
+    public Boolean checkIsPass(GatekeeperOrderIsPassParam gatekeeper) {
+        log.info("校验是否可放行:{}", JSON.toJSONString(gatekeeper));
+        if (StringUtils.isBlank(gatekeeper.getTruckNo())) {
+            throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "车牌号不能为空!");
+        }
+
+        List<KwtWaybillOrder> wbOrderByTruckNo = waybillOrderRepository.findWbOrderByTruckNo(gatekeeper.getTruckNo());
+        if (CollectionUtils.isEmpty(wbOrderByTruckNo)) {
+            return Boolean.FALSE;
+        }
+        // 获取最新的一条数据
+        KwtWaybillOrder waybillOrder = wbOrderByTruckNo.get(0);
+
+        List<KwtGatekeeperWaybillOrder> gatekeeperWaybillOrders = gatekeeperWaybillOrderRepository
+                .queryGatekeeperWaybillOrderByWOrderIds(Lists.newArrayList(waybillOrder.getId()));
+        if (CollectionUtils.isEmpty(gatekeeperWaybillOrders)) {
+            return Boolean.FALSE;
+        }
+        KwtGatekeeperWaybillOrder gatekeeperWaybillOrder = gatekeeperWaybillOrders.get(0);
+
+
+        // 定义运单可以可放行的状态集合
+        List<Integer> PASS_STATUSES = Arrays.asList(
+                GatekeeperStatusEnum.PENDING_ENTRY.getCode(),
+                GatekeeperStatusEnum.READY_RELEASE.getCode()
+        );
+
+        return PASS_STATUSES.contains(gatekeeperWaybillOrder.getStatus()) ? Boolean.TRUE : Boolean.FALSE;
+    }
+
 
 }