From 59f638dc751a291c67ce271304c96ccde6ddaab3 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期三, 02 四月 2025 09:58:37 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/LocMoveAllScheduler.java       |  126 +++++++++++++++++++++++++++++++
 src/main/resources/application.yml                            |    9 ++
 src/main/java/com/zy/asrs/task/handler/LocMoveAllHandler.java |   80 ++++++++++++++++++++
 3 files changed, 214 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/LocMoveAllScheduler.java b/src/main/java/com/zy/asrs/task/LocMoveAllScheduler.java
new file mode 100644
index 0000000..5e6ef92
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/LocMoveAllScheduler.java
@@ -0,0 +1,126 @@
+package com.zy.asrs.task;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.zy.asrs.entity.BasCrnp;
+import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.BasCrnpService;
+import com.zy.asrs.service.LocMastService;
+import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.task.core.ReturnT;
+import com.zy.asrs.task.handler.LocMoveAllHandler;
+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.util.Iterator;
+import java.util.List;
+
+/**
+ * Created by vincent on 2020/7/7
+ */
+@Slf4j
+@Component
+public class LocMoveAllScheduler {
+
+    @Value("${loc-move.enable}")
+    private boolean enable;
+    @Value("${loc-move.crn1}")
+    private boolean crn1;
+    @Value("${loc-move.crn2}")
+    private boolean crn2;
+    @Value("${loc-move.crn3}")
+    private boolean crn3;
+    @Value("${loc-move.crn4}")
+    private boolean crn4;
+
+    @Autowired
+    private LocMoveAllHandler locMoveAllHandler;
+    @Autowired
+    private WrkMastService wrkMastService;
+    @Autowired
+    private LocMastService locMastService;
+    @Autowired
+    private BasCrnpService basCrnpService;
+    @Autowired
+    private SlaveProperties slaveProperties;
+
+    @Scheduled(cron = "0/3 * * * * ? ")
+    private void execute(){
+        if (!enable) return;
+
+        List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>());
+        if (basCrnps.isEmpty()){
+            return;
+        }
+        Iterator<BasCrnp> iterator = basCrnps.iterator();
+        while (iterator.hasNext()){
+            BasCrnp basCrnp = iterator.next();
+            if (basCrnp.getCrnNo() == 1 && !crn1){
+                iterator.remove();
+            }
+            if (basCrnp.getCrnNo() == 2 && !crn2){
+                iterator.remove();
+            }
+            if (basCrnp.getCrnNo() == 3 && !crn3){
+                iterator.remove();
+            }
+            if (basCrnp.getCrnNo() == 4 && !crn4){
+                iterator.remove();
+            }
+        }
+        if (basCrnps.isEmpty()){
+            return;
+        }
+        for (BasCrnp basCrnp:basCrnps){
+            if (basCrnp.getCrnSts()!=3) continue;
+            if (!basCrnp.getInEnable().equals("N") || !basCrnp.getOutEnable().equals("Y")) continue;
+            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("crn_no",basCrnp.getCrnNo()).eq("io_type",11));
+            if (Cools.isEmpty(wrkMasts) || wrkMasts.size()==0) {
+                LocMast locMastStart = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts","D").eq("crn_no",basCrnp.getCrnNo()).orderBy("appe_time",true));//绌烘澘鎵�鍦�
+                if (Cools.isEmpty(locMastStart)){
+                    continue;
+                }
+                if (!Utils.isShallowLoc(slaveProperties, locMastStart.getLocNo())){
+                    String shallowLocNo = Utils.getShallowLoc(slaveProperties, locMastStart.getLocNo());
+                    LocMast locNo = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", shallowLocNo));
+                    if (!locNo.getLocSts().equals("O")){
+                        locMastStart = locNo;
+                    }
+                }
+                LocMast locMastEnd = locMastService.selectOne(new EntityWrapper<LocMast>()
+                        .eq("loc_sts","O")
+                        .eq("crn_no",basCrnp.getCrnNo())
+                        .eq("loc_type1",locMastStart.getLocType1())
+                        .ne("modi_user",66)
+                        .orderBy("row1",true));//鐩爣
+                if (Cools.isEmpty(locMastEnd)){
+                    continue;
+                }
+                if (!Utils.isShallowLoc(slaveProperties, locMastEnd.getLocNo())){
+                    String shallowLocNo = Utils.getShallowLoc(slaveProperties, locMastEnd.getLocNo());
+                    LocMast locNo = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", shallowLocNo));
+                    if (locNo.getLocSts().equals("O")){
+
+                    }else {
+                        locMastEnd.setModiUser(66L);
+                        locMastService.updateById(locMastEnd);
+                        continue;
+                    }
+                }
+//                if (Cools.isEmpty(locMastStart) || Cools.isEmpty(locMastEnd)){
+
+                ReturnT<String> result = locMoveAllHandler.start(locMastStart,locMastEnd,basCrnp.getCrnNo());
+                if (!result.isSuccess()) {
+                    log.error("澶勭悊澶辫触");
+                }
+            }
+        }
+    }
+
+}
diff --git a/src/main/java/com/zy/asrs/task/handler/LocMoveAllHandler.java b/src/main/java/com/zy/asrs/task/handler/LocMoveAllHandler.java
new file mode 100644
index 0000000..f65de1e
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/handler/LocMoveAllHandler.java
@@ -0,0 +1,80 @@
+package com.zy.asrs.task.handler;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.service.LocMastService;
+import com.zy.asrs.service.WorkService;
+import com.zy.asrs.task.AbstractHandler;
+import com.zy.asrs.task.core.ReturnT;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
+
+/**
+ * Created by vincent on 2020/7/6
+ */
+@Slf4j
+@Service
+public class LocMoveAllHandler extends AbstractHandler<String> {
+
+    @Autowired
+    private WorkService workService;
+    @Autowired
+    private LocMastService locMastService;
+    private final Integer BAY = 28;//YINGTAN
+
+
+    @Transactional
+    public ReturnT<String> start(LocMast locMastStart, LocMast locMastEnd, Integer crnNo) {
+        try {
+            LocMast locMastEndNew = null;
+            Integer row1 = locMastStart.getRow1();
+            Integer row2 = 0;
+            Integer bay1 = locMastStart.getBay1();
+            Integer lev1 = locMastStart.getLev1();
+            if (row1==crnNo*4){
+                row1 = crnNo*4-3;
+                row2 = row1+1;
+            }else {
+                row1=crnNo*4;
+                row2 = row1-1;
+            }
+            Integer signInt = 0;
+            while (Cools.isEmpty(locMastEndNew) && lev1<9 && signInt<100){
+                signInt++;
+
+                bay1 = BAY+1-bay1;
+                if ((bay1<BAY && bay1>0) || (bay1.equals(BAY) && lev1>3)){
+
+                }else {
+                    bay1=1;
+                    lev1++;
+                }
+                locMastEndNew = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts","O").eq("row1",row1).eq("bay1",bay1).eq("lev1",lev1).ne("modi_user",66));
+                LocMast locMastEndNew2 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts","O").eq("row1",row2).eq("bay1",bay1).eq("lev1",lev1).ne("modi_user",66));
+                if (!Cools.isEmpty(locMastEndNew) && !Cools.isEmpty(locMastEndNew2)){
+                    locMastEnd = locMastEndNew;
+                }
+                if ((bay1<BAY && bay1>0)){
+                    bay1++;
+                }
+                if (signInt==100){
+                    bay1=1;
+                    lev1++;
+                    signInt=0;
+                }
+            }
+            workService.locMove(locMastStart.getLocNo(), locMastEnd.getLocNo(), 66L);
+        } catch (Exception e) {
+            log.error("fail", e);
+            e.printStackTrace();
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return FAIL.setMsg(e.getMessage());
+        }
+        return SUCCESS;
+    }
+
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 1a5ea58..84f17c0 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -105,4 +105,11 @@
   url: ""
   taskCreatePath: ""
 shuttleWcs:
-  url: "10.0.100.140:8088/wcs"
\ No newline at end of file
+  url: "10.0.100.140:8088/wcs"
+
+loc-move:
+  enable: true
+  crn1: false
+  crn2: false
+  crn3: false
+  crn4: false
\ No newline at end of file

--
Gitblit v1.9.1