From 2dc3f0507d6e883d16b1c3c095ca06455a6fa1a7 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期一, 25 十二月 2023 09:21:20 +0800
Subject: [PATCH] #提升机设备工作号优化

---
 src/main/java/com/zy/asrs/service/BasLiftOptService.java          |    4 ++
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java       |   10 +++++
 src/main/java/com/zy/asrs/task/ClearLiftOptScheduler.java         |   28 ++++++++++++++
 src/main/java/com/zy/asrs/mapper/BasLiftOptMapper.java            |    8 ++++
 src/main/java/com/zy/asrs/service/impl/BasLiftOptServiceImpl.java |   10 +++++
 src/main/java/com/zy/common/service/CommonService.java            |    2 
 6 files changed, 61 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/BasLiftOptMapper.java b/src/main/java/com/zy/asrs/mapper/BasLiftOptMapper.java
index db07888..5fca55c 100644
--- a/src/main/java/com/zy/asrs/mapper/BasLiftOptMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/BasLiftOptMapper.java
@@ -2,6 +2,8 @@
 
 import com.zy.asrs.entity.BasLiftOpt;
 import com.baomidou.mybatisplus.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Insert;
 import org.apache.ibatis.annotations.Mapper;
 import org.springframework.stereotype.Repository;
 
@@ -16,4 +18,10 @@
 
     List<Map<String, Object>> selectRunStatistic();//鑾峰彇鎻愬崌鏈烘瘡澶╄繍琛屾暟鎹�
 
+    @Insert("insert into asr_bas_lift_opt_storage select * from asr_bas_lift_opt where id in (select id from asr_bas_lift_opt where DATEDIFF(day, send_time, GETDATE()) > #{day})")
+    int saveToStorage(Integer day);
+
+    @Delete("delete from asr_bas_lift_opt where id in (select id from asr_bas_lift_opt where DATEDIFF(day, send_time, GETDATE()) > #{day})")
+    int deleteByDay(Integer day);
+
 }
diff --git a/src/main/java/com/zy/asrs/service/BasLiftOptService.java b/src/main/java/com/zy/asrs/service/BasLiftOptService.java
index b587e79..2323575 100644
--- a/src/main/java/com/zy/asrs/service/BasLiftOptService.java
+++ b/src/main/java/com/zy/asrs/service/BasLiftOptService.java
@@ -7,4 +7,8 @@
 
     BasLiftOpt selectByDeviceWrk(String deviceWrk, Integer liftNo);
 
+    int saveToStorage(Integer day);
+
+    int deleteByDay(Integer day);
+
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/BasLiftOptServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasLiftOptServiceImpl.java
index b9be9da..08f9fce 100644
--- a/src/main/java/com/zy/asrs/service/impl/BasLiftOptServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/BasLiftOptServiceImpl.java
@@ -13,4 +13,14 @@
     public BasLiftOpt selectByDeviceWrk(String deviceWrk, Integer liftNo) {
         return this.baseMapper.selectByDeviceWrk(deviceWrk, liftNo);
     }
+
+    @Override
+    public int saveToStorage(Integer day) {
+        return this.baseMapper.saveToStorage(day);
+    }
+
+    @Override
+    public int deleteByDay(Integer day) {
+        return this.baseMapper.deleteByDay(day);
+    }
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 2127fdc..1d32a45 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1613,6 +1613,11 @@
             if (wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57) {
                 //鎷f枡鍐嶅洖搴擄紝閲嶆柊鍒嗛厤璁惧宸ヤ綔鍙�
                 int deviceWrk = commonService.getWorkNo(8);//鐢熸垚鎻愬崌鏈鸿澶囧伐浣滃彿
+                BasLiftOpt basLiftOpt = basLiftOptService.selectByDeviceWrk(String.valueOf(deviceWrk), liftThread.getSlave().getId());
+                if (basLiftOpt != null) {
+                    News.info("{}浠诲姟锛寋}鍙锋彁鍗囨満锛岃澶囧伐浣滃彿鍑虹幇閲嶅鎯呭喌锛岃鑱旂郴鎶�鏈汉鍛樻敮鎸併��", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
+                    return false;
+                }
                 liftCommand.setTaskNo((short) deviceWrk);
             }
             ArrayList<NyLiftCommand> commands = new ArrayList<>();
@@ -3527,6 +3532,11 @@
                 NyLiftCommand liftCommand = NyLiftUtils.getLiftCommand(liftProtocol.getLiftNo().intValue(), NyLiftTaskModelType.MOVE_CAR.id, sourceLiftSta.getStaNo(), sourceLiftSta.getStaNo(), wrkMast.getWrkNo());
 
                 int deviceWrk = commonService.getWorkNo(8);//鐢熸垚鎻愬崌鏈鸿澶囧伐浣滃彿
+                BasLiftOpt basLiftOpt = basLiftOptService.selectByDeviceWrk(String.valueOf(deviceWrk), liftThread.getSlave().getId());
+                if (basLiftOpt != null) {
+                    News.info("{}浠诲姟锛寋}鍙锋彁鍗囨満锛岃澶囧伐浣滃彿鍑虹幇閲嶅鎯呭喌锛岃鑱旂郴鎶�鏈汉鍛樻敮鎸併��", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
+                    return false;
+                }
                 liftCommand.setTaskNo((short) deviceWrk);//鏇存崲闅忔満浠诲姟鍙�
 
                 ArrayList<NyLiftCommand> commands = new ArrayList<>();
diff --git a/src/main/java/com/zy/asrs/task/ClearLiftOptScheduler.java b/src/main/java/com/zy/asrs/task/ClearLiftOptScheduler.java
new file mode 100644
index 0000000..84b5c5f
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/ClearLiftOptScheduler.java
@@ -0,0 +1,28 @@
+package com.zy.asrs.task;
+
+import com.zy.asrs.service.BasLiftOptService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 瀹氭椂娓呯悊鎻愬崌鏈哄懡浠�
+ * 姣忓ぉ鏅氫笂23鐐规墽琛�
+ */
+@Component
+@Slf4j
+public class ClearLiftOptScheduler {
+
+    @Autowired
+    private BasLiftOptService basLiftOptService;
+
+    @Scheduled(cron = "0 0 23 * * ? ")
+    @Transactional
+    public void clear() {
+        int count = basLiftOptService.saveToStorage(15);
+        int count2 = basLiftOptService.deleteByDay(15);
+    }
+
+}
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 4fec9b9..28fb4f1 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -56,7 +56,7 @@
      * 鐢熸垚宸ヤ綔鍙�
      * @return workNo(宸ヤ綔鍙�)
      */
-    public int getWorkNo(Integer wrkMk) {
+    public synchronized int getWorkNo(Integer wrkMk) {
         WrkLastno wrkLastno = wrkLastnoService.selectById(wrkMk);
         if (Cools.isEmpty(wrkLastno)) {
             throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�");

--
Gitblit v1.9.1