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