From e7b2f80f766fc2d54bc03d1875b8391094bcf3a7 Mon Sep 17 00:00:00 2001
From: mrz <17966059@qq.com>
Date: Fri, 7 Apr 2023 17:18:12 +0800
Subject: [PATCH] 关锁业务处理:快邮顺丰货站特殊关锁通知判定

---
 src/main/java/com/sy/service/impl/GatherInfoServiceImpl.java  |  5 -----
 src/main/java/com/sy/service/lock/CustomsLockServiceImpl.java | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------
 2 files changed, 52 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/sy/service/impl/GatherInfoServiceImpl.java b/src/main/java/com/sy/service/impl/GatherInfoServiceImpl.java
index a23e608..752a02d 100644
--- a/src/main/java/com/sy/service/impl/GatherInfoServiceImpl.java
+++ b/src/main/java/com/sy/service/impl/GatherInfoServiceImpl.java
@@ -27,9 +27,4 @@ public class GatherInfoServiceImpl implements GatherInfoService {
     public void handel(GatherInfo info){
 
     }
-
-    @Override
-    public boolean haveLockNum(String barcode) {
-        return false;
-    }
 }
diff --git a/src/main/java/com/sy/service/lock/CustomsLockServiceImpl.java b/src/main/java/com/sy/service/lock/CustomsLockServiceImpl.java
index 839ab77..0ec3d67 100644
--- a/src/main/java/com/sy/service/lock/CustomsLockServiceImpl.java
+++ b/src/main/java/com/sy/service/lock/CustomsLockServiceImpl.java
@@ -89,11 +89,14 @@ public class CustomsLockServiceImpl implements CustomsLockService {
             LandBusinessTypeList landBusinessTypeList = landBusListService.getLandBusinessTypeListByGather(info);
             if (landBusinessTypeList!=null){
                 if ("调拨业务".equals(landBusinessTypeList.getBusinesstype()) || "分拨业务".equals(landBusinessTypeList.getBusinesstype())) {
-                    //综保区场站及内三不通知
-                    if ("4600329012".equals(landBusinessTypeList.getEndstation()) || "4612199001".equals(landBusinessTypeList.getEndstation())) {
-                        log.info("[LOCK-CHECK]-综保区及内三场站不处理关锁业务,当前场站:{}",landBusinessTypeList.getEndstation());
+                    //综保区场站及内三不通知,顺丰场站不通知
+                    String sfAreaid = "4600541001";
+                    if ("4600329012".equals(landBusinessTypeList.getEndstation())
+                            || "4612199001".equals(landBusinessTypeList.getEndstation())
+                            || sfAreaid.equals(landBusinessTypeList.getEndstation())
+                    ) {
+                        log.info("[LOCK-CHECK]-综保区及内三场站,顺丰场站,不处理关锁业务,当前场站:{}",landBusinessTypeList.getEndstation());
                         return false;
-                        //场站检查,todo:快邮场站特殊判定
                     }else {
                         return true;
                         /**
@@ -126,15 +129,38 @@ public class CustomsLockServiceImpl implements CustomsLockService {
         int e = landBusListService.selectFirstLeave(info.getVename(), info.getBarcode(), "E");
         if (e==0){
             //首次离场,通知关锁接口 上锁
-            log.info("[UNLOCK-NOTICE]-上锁通知");
+            log.info("[UNLOCK-NOTICE]-非顺丰场站业务上锁通知");
+
+            /**
+             * 涉及顺丰的场站业务涉及三个场站
+             * 顺丰的通道没有读解锁设备
+             * 需要在快邮卡口进行解读锁
+             */
+            //顺丰出通道,首次出不上锁
+            String sfExportChanel = "4600010001";
+            if (sfExportChanel.equals(info.getChnlno())) {
+                log.warn("[UNLOCK-NOTICE]-顺丰货站,不进行上锁通知,{}",info.getBarcode());
+                return false;
+            }
+
             return true;
+        }else {
+            /**
+             * 顺丰上锁通知判定,是在第二个离场通道进行施封
+             * 当前场站是快邮货站出
+             * 有一个离场信息,那么就上锁通知
+             */
+            //快邮出通道,上锁通知,二次出上锁
+            String sfExportChanel = "4604110112";
+            if (sfExportChanel.equals(info.getChnlno()) && e==1){
+                log.warn("[UNLOCK-NOTICE]-快邮货站,进行上锁通知,{}",info.getBarcode());
+                return true;
+            }
         }
 
         return false;
     }
 
-
-
     @Override
     public boolean unLockCheck(GatherInfo info){
 
@@ -163,6 +189,15 @@ public class CustomsLockServiceImpl implements CustomsLockService {
 
         //判定是否还剩最后一个场站未入场
         if (stationList.size() == 1){
+
+            //顺丰进通道,解锁通知,末次进不解锁
+            String sfImportChanel = "4600011001";
+            if (sfImportChanel.equals(info.getChnlno())) {
+                log.warn("[UNLOCK-NOTICE]-顺丰货站,不进行解锁通知,{}",info.getBarcode());
+                return false;
+            }
+
+
             //场站信息 与 当前GatherInfo信息又对的上
             if (stationList.get(0).equals(info.getAreaid())) {
                 //通知解锁
@@ -171,6 +206,16 @@ public class CustomsLockServiceImpl implements CustomsLockService {
             }
         }
 
+        /**
+         * 顺丰快邮特殊判定
+         */
+        //快邮进通道,解锁通知,二次进锁
+        String kyImportChanel = "4604111111";
+        if (kyImportChanel.equals(info.getChnlno()) && stationList.size() == 2 ){
+            log.info("[UNLOCK-NOTICE]-快邮货站,解锁通知,{}",info.getBarcode());
+            return true;
+        }
+
         return false;
     }
 }
--
libgit2 0.24.0