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