自动化立体仓库 - WCS系统
#
zjj
2024-11-03 4c0563ccd42cb718fa3868600287194497f2cf62
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -31,17 +31,17 @@
import com.zy.core.enums.DevpType.DevpStateType;
import com.zy.core.enums.DevpType.DevpTrayType;
import com.zy.core.enums.DevpType.DevpWorkType;
import com.zy.core.model.*;
import com.zy.core.model.CrnSlave;
import com.zy.core.model.DevpSlave;
import com.zy.core.model.LedSlave;
import com.zy.core.model.Task;
import com.zy.core.model.command.CrnCommand;
import com.zy.core.model.command.LedCommand;
import com.zy.core.model.command.RgvCommand;
import com.zy.core.model.protocol.CrnProtocol;
import com.zy.core.model.protocol.RgvProtocol;
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.BarcodeThread;
import com.zy.core.thread.LedThread;
import com.zy.core.thread.RgvThread;
import com.zy.core.thread.SiemensDevpThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -53,7 +53,6 @@
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
@@ -428,7 +427,7 @@
                    // 更新站点信息 且 下发plc命令
                    staProtocol.setWorkNo(wrkMast.getWrkNo());
                    staProtocol.setStaNo((short) 161);
                    staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
                    devpThread.setPakMk(staProtocol.getSiteId(), false);
                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                    log.error("输送线下发5:"+wrkMast.getWrkNo()+","+wrkMast.getStaNo());
@@ -2116,13 +2115,13 @@
                } else {
                    staProtocol = staProtocol.clone();
                }
                if (!(staProtocol.stateType == DevpStateType.AUTO && staProtocol.workType == DevpWorkType.BUSY && staProtocol.requestType == DevpRequestType.OUT)){
                if (!(staProtocol.stateType == DevpStateType.AUTO && staProtocol.requestType == DevpRequestType.OUT)){
                    continue;
                }
                if (staProtocol.getWorkNo() != 0){
                if (staProtocol.getWorkNo() == 0){
                    continue;
                }
                WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", staProtocol.getWorkNo()).eq("wrk_sts", 101).in("crn_no", 8, 9));
                WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", staProtocol.getWorkNo()).eq("wrk_sts", 101));
                if(!Cools.isEmpty(wrkMast1)){
                    continue;
                }
@@ -2130,9 +2129,8 @@
                //查询状态为2的任务
                WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
                        .eq("wrk_no", staProtocol.getWorkNo())
                        .in("io_type",1,10,53,54,57)
                        .in("wrk_sts", 2,104)
                        .in("crn_no",8,9));
                        .in("io_type",101,110,103,104,107)
                        .eq("wrk_sts", 15));
                if (Cools.isEmpty(wrkMast)) {
                    log.error(agvSta.getStaNo()+"站,转发agv任务未找到对应任务,任务号:"+staProtocol.getWorkNo());
                    continue;
@@ -2157,21 +2155,32 @@
    }
    private void getAgvTaskParam(ForwardAGVTaskParam agvTaskCreateParam,WrkMast param,Integer staNo){
        String sourceSite = "";
        if (staNo == 1040 || staNo == 1042) {
            sourceSite = "a";
        } else if (staNo == 2010 || staNo == 2012) {
            sourceSite = "b";
        } else if(staNo == 3010  || staNo ==3012) {
            sourceSite = "c";
        } else if(staNo == 2000 || staNo ==2002) {
            sourceSite = "d";
        }
        List<ForwardAGVTaskParam.PositionCodePaths> agvTaskParamList = Arrays.asList(
                //起始位
                new ForwardAGVTaskParam.PositionCodePaths(staNo.toString(),"05"),
                //目标位
                new ForwardAGVTaskParam.PositionCodePaths(param.getLocNo(),"05")
                new ForwardAGVTaskParam.PositionCodePaths(sourceSite,"04")
        );
        Date date = new Date();
        DecimalFormat df = new DecimalFormat("0000");
        String wrkNo = "Crn"+df.format(param.getWrkNo())+date.getTime()/1000;
        agvTaskCreateParam.setReqCode(wrkNo);
        agvTaskCreateParam.setReqTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
        agvTaskCreateParam.setTaskTyp("GT1");
        agvTaskCreateParam.setTaskTyp("GT4");
        agvTaskCreateParam.setCtnrCode(param.getBarcode());
        agvTaskCreateParam.setPositionCodePath(agvTaskParamList);
        agvTaskCreateParam.setCtnrTyp("1");
        agvTaskCreateParam.setCtnrTyp("2");
        agvTaskCreateParam.setPriority("1");
        agvTaskCreateParam.setTaskCode(wrkNo);
    }