From 8b52cb78c70877c9d8689bfcdb49461995cf939a Mon Sep 17 00:00:00 2001
From: 18516761980 <56479841@qq.com>
Date: 星期四, 16 六月 2022 15:21:25 +0800
Subject: [PATCH] Merge branch 'master' of https://gitee.com/luxiaotao1123/zy-asrs into hylyasrs

---
 src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java |    4 +
 src/main/java/com/zy/asrs/task/CheckDeepScheduler.java         |  121 ++++++++++++++++++++++++++++++++++++++++
 src/main/resources/mapper/LocMastMapper.xml                    |   18 ++++++
 src/main/java/com/zy/asrs/mapper/LocMastMapper.java            |    1 
 src/main/java/com/zy/asrs/service/LocMastService.java          |    2 
 5 files changed, 146 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
index b50bc1e..d68ef3f 100644
--- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -28,4 +28,5 @@
         "and (loc_type2 is null or loc_type2 = #{locType2}) and (loc_type3 is null or loc_type3 = #{locType3}) ")
     Integer selectEmptyLocCount(@Param("locType1") Short locType1, @Param("locType2") Short locType2, @Param("locType3") Short locType3, @Param("crnNo") Integer crnNo);
 
+    List<LocMast> queryShallowLocFMast();
 }
diff --git a/src/main/java/com/zy/asrs/service/LocMastService.java b/src/main/java/com/zy/asrs/service/LocMastService.java
index 883d327..ee03916 100644
--- a/src/main/java/com/zy/asrs/service/LocMastService.java
+++ b/src/main/java/com/zy/asrs/service/LocMastService.java
@@ -47,4 +47,6 @@
      * @return
      */
     LocMast queryFreeLocMastExceptFirst(Integer row, Short locType1, Short locType2, Short locType3);
+
+    public List<LocMast> queryShallowLocFMast();
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
index b0a6b47..03998ce 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -58,4 +58,8 @@
         return this.baseMapper.queryFreeLocMastExceptFirst(row, locType1, locType2, locType3);
     }
 
+    @Override
+    public List<LocMast> queryShallowLocFMast() {
+        return this.baseMapper.queryShallowLocFMast();
+    }
 }
diff --git a/src/main/java/com/zy/asrs/task/CheckDeepScheduler.java b/src/main/java/com/zy/asrs/task/CheckDeepScheduler.java
new file mode 100644
index 0000000..c0b0338
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/CheckDeepScheduler.java
@@ -0,0 +1,121 @@
+package com.zy.asrs.task;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.LocDetlService;
+import com.zy.asrs.service.LocMastService;
+import com.zy.asrs.service.WorkService;
+import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.task.core.ReturnT;
+import com.zy.asrs.utils.Utils;
+import com.zy.common.properties.SlaveProperties;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
+@Component
+@Slf4j
+public class CheckDeepScheduler {
+
+    @Value("${wcs-slave.doubleDeep}")
+    private boolean confirmDeep;
+    @Value("${wcs-slave.doubleLocs}")
+    private String deepLocs;
+    @Value("${wcs-slave.shallowLocs}")
+    private String shallowLocs;
+    @Autowired
+    private LocDetlService locDetlService;
+    @Autowired
+    private LocMastService locMastService;
+    @Autowired
+    private WorkService workService;
+    @Autowired
+    private WrkMastService wrkMastService;
+    @Autowired
+    private SlaveProperties slaveProperties;
+
+    /**
+     * 閬嶅巻搴撳瓨涓紝娴呭簱浣嶇姸鎬丗/D锛屾繁搴撲綅鐘舵�丱鐨勬暟鎹紝鐢熸垚搴撲綅绉昏浆宸ヤ綔妗e皢娴呭簱浣嶇Щ杞埌瀵瑰簲娣卞簱浣嶄腑鍘�
+     */
+    @Scheduled(cron = "0/30 * * * * ?")
+    private void locMoveToDeep(){
+        if (!confirmDeep) return;
+        List<LocMast> locMasts = locMastService.queryShallowLocFMast();
+
+        if (null == locMasts) return;
+
+        for (LocMast sourceLoc : locMasts){
+            String deep = Utils.getDeepLoc(slaveProperties, sourceLoc.getLocNo());
+            LocMast destLoc = locMastService.selectById(deep);
+            
+            if(!Cools.isEmpty(sourceLoc) && !Cools.isEmpty(destLoc)) {
+                //鏌ユ壘婧愬簱浣嶆槸鍚︽湁杞Щ浠诲姟,濡傛灉鏈�,涓嶇敓鎴愬簱浣嶇Щ杞�
+                WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+                        .eq("source_loc_no", sourceLoc.getLocNo()));
+                if (Cools.isEmpty(wrkMast) && destLoc.getLocSts().equals("O") &&
+                        (sourceLoc.getLocSts().equals("F") || sourceLoc.getLocSts().equals("D"))) {
+                    workService.locMove(sourceLoc.getLocNo(), deep, 1L);
+                }
+            }
+        }
+
+    }
+
+    /**
+     *閬嶅巻搴撳瓨涓紝娣辨祬搴撲綅鐘舵�侀兘涓篎锛岀墿鏂欎笉鐩稿悓锛屾垨鑰呮祬搴撲綅鍏ュ簱鏃ユ湡姣旀繁搴撲綅鏃╃殑搴撲綅锛屽仛搴撲綅绉昏浆绉诲埌鏂扮殑娣卞簱浣嶄腑鍘�
+     * 0鐐瑰埌5鐐逛箣闂存墽琛岋紝姣忔鍙墽琛屼竴绗�
+     */
+//    @Scheduled(cron = "0/90 * * * * ?")
+    private void LocMoveToNewLoc() throws ParseException {
+//        if (!confirmDeep) return;
+//
+//        for (int crnNo = 1; crnNo < 4; crnNo++){
+//            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+//                    .eq("crn_no",crnNo)
+//                    .last(" and wrk_sts in (2,3,4,11,12)")
+//            );
+//            if (wrkMasts.size() > 0) continue;
+//            List<LocMast> locMasts = locMastService.queryNeedMoveShallLoc(crnNo);
+//            for (LocMast locMast : locMasts) {
+//                LocMast targetLoc = locMastService.queryEmptyDeepLoc(crnNo);
+//                if(!Cools.isEmpty(targetLoc)) {
+//                    workService.locMove(locMast.getLocNo(), targetLoc.getLocNo(), 1L);
+//                }
+//                break;
+//            }
+//        }
+
+    }
+
+
+    /**
+     * 灏嗘繁搴撲綅杞负瀵瑰簲娴呭簱浣�
+     * @param deep
+     * @return
+     */
+    private String convertShallow(String deep){
+        String shallLoc = "";
+        Integer mastInt = Integer.parseInt(deep.substring(0, 2));
+        if (mastInt % 2 == 0){
+            mastInt -= 1;
+        }else if (mastInt % 2 == 1){
+            mastInt += 1;
+        }
+        if (mastInt <10){
+            shallLoc = "0" + mastInt+ deep.substring(2,7);
+        }else {
+            shallLoc = mastInt+ deep.substring(2,7);
+        }
+        return shallLoc;
+    }
+
+}
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index 6607ba4..a736a3b 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -90,4 +90,22 @@
         order by loc_sts desc ,lev1 asc,bay1 asc
     </select>
 
+    <select id="queryShallowLocFMast" resultMap="BaseResultMap">
+        select * from asr_loc_mast
+        where 1=1
+        and loc_no in (
+         select
+         concat(
+         (
+         case
+         when left(loc_no, 2) = '01' then '02'
+         end)
+         , right(loc_no, 5)) as shallowLocNo
+         from asr_loc_mast
+         where 1=1
+         and loc_sts = 'O'
+         and row1 in (1,4,5,8,9,12,13,16,17,20)
+        )
+        and (loc_sts = 'F' or loc_sts = 'D')
+    </select>
 </mapper>

--
Gitblit v1.9.1