From a0f38b9be88954cfeb9b9c2fc1e8f37940ecb79f Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期四, 31 十月 2024 10:26:36 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/model/DevpSlave.java | 2 src/main/java/com/zy/asrs/domain/param/ForwardAGVTaskParam.java | 38 ++++++++++++ src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 99 +++++++++++++++++++++++++++++++++ src/main/resources/application.yml | 5 + 4 files changed, 144 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/zy/asrs/domain/param/ForwardAGVTaskParam.java b/src/main/java/com/zy/asrs/domain/param/ForwardAGVTaskParam.java new file mode 100644 index 0000000..5f184fb --- /dev/null +++ b/src/main/java/com/zy/asrs/domain/param/ForwardAGVTaskParam.java @@ -0,0 +1,38 @@ +package com.zy.asrs.domain.param; + +import lombok.Data; + +import java.util.List; + +@Data +public class ForwardAGVTaskParam { + private String reqCode; + private String reqTime; + private String taskTyp; + private String ctnrCode; + private List<PositionCodePaths> positionCodePath; + private String clientCode = ""; + private String tokenCode = ""; + private String ctnrTyp = ""; + private String wbCode = ""; + private String podCode = ""; + private String podDir = ""; + private String podTyp = ""; + private String materialLot = ""; + private String priority = ""; + private String taskCode; + private String agvCode = ""; + private String data = ""; + + @Data + public static class PositionCodePaths{ + private String positionCode; + private String type; + + public PositionCodePaths(String positionCode, String type){ + this.positionCode = positionCode; + this.type = type; + + } + } +} diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java index 366427b..7ac1d7c 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -7,6 +7,7 @@ import com.core.common.Cools; import com.core.common.DateUtils; import com.core.exception.CoolException; +import com.zy.asrs.domain.param.ForwardAGVTaskParam; import com.zy.asrs.entity.*; import com.zy.asrs.mapper.*; import com.zy.asrs.service.*; @@ -49,6 +50,8 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; +import java.text.DecimalFormat; +import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -2101,9 +2104,105 @@ // News.infoNoLog(""+mark+" - 0"+" - outOfDevp鎵ц瀹屾垚"); } + public synchronized void forwardAGVInTasks() { + for (DevpSlave devp : slaveProperties.getDevp()) { + // 閬嶅巻鍏ュ簱鍙� + for (DevpSlave.Sta agvSta : devp.getAgvOutSta()) { + // 鑾峰彇鍏ュ簱绔欎俊鎭� + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); + StaProtocol staProtocol = devpThread.getStation().get(agvSta.getStaNo()); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + if (!(staProtocol.stateType == DevpStateType.AUTO && staProtocol.workType == DevpWorkType.BUSY && staProtocol.requestType == DevpRequestType.OUT)){ + continue; + } + 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)); + if(!Cools.isEmpty(wrkMast1)){ + continue; + } + //鏌ヨ鐘舵�佷负2鐨勪换鍔� + //鏌ヨ鐘舵�佷负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)); + if (Cools.isEmpty(wrkMast)) { + log.error(agvSta.getStaNo()+"绔�,杞彂agv浠诲姟鏈壘鍒板搴斾换鍔�,浠诲姟鍙凤細"+staProtocol.getWorkNo()); + continue; + } + ForwardAGVTaskParam forwardAGVTaskParam = new ForwardAGVTaskParam(); + getAgvTaskParam(forwardAGVTaskParam,wrkMast,staProtocol.getSiteId()); + String request = forwardAGVHttpRequest(forwardAGVTaskParam, "10.0.100.110:8182", "/rcms/services/rest/hikRpcService/genAgvSchedulingTask"); + if ("SUCCESS".equals(request)) { + wrkMast.setWrkSts(101L); + boolean update = wrkMastService.updateById(wrkMast); + if (update){ + log.info("鍏ュ簱杞彂AGV浠诲姟瀹屾垚,浠诲姟鍙�:"+wrkMast.getWrkNo()); + devpThread.setPakMk(staProtocol.getSiteId(), false); + } + } + } + } + + } + + private void getAgvTaskParam(ForwardAGVTaskParam agvTaskCreateParam,WrkMast param,Integer staNo){ + List<ForwardAGVTaskParam.PositionCodePaths> agvTaskParamList = Arrays.asList( + //璧峰浣� + new ForwardAGVTaskParam.PositionCodePaths(staNo.toString(),"05"), + //鐩爣浣� + new ForwardAGVTaskParam.PositionCodePaths(param.getLocNo(),"05") + ); + Date date = new Date(); + DecimalFormat df = new DecimalFormat("0000"); + String wrkNo = "Ctu"+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.setCtnrCode(param.getBarcode()); + agvTaskCreateParam.setPositionCodePath(agvTaskParamList); + agvTaskCreateParam.setCtnrTyp("1"); + agvTaskCreateParam.setTaskCode(wrkNo); + + } + + private String forwardAGVHttpRequest(Object requestParam, String url, String path){ + String response = ""; + String success = "error"; + try { + response = new HttpHandler.Builder() + .setUri(url) +// .setHttps(true) + .setPath(path) + .setJson(JSONObject.toJSONString(requestParam)) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + + String message = jsonObject.get("code").toString(); + if(("0").equals(message) || ("璇锋眰缂栧彿宸插瓨鍦�").contains(message)){ + success = "SUCCESS"; + }else { + success = message; + } + log.info("杞彂agv浠诲姟锛氳姹備綋:"+JSONObject.toJSONString(requestParam)+",杩斿洖鍊�:"+jsonObject); + }catch (Exception e){ + + } + return success; + } + + diff --git a/src/main/java/com/zy/core/model/DevpSlave.java b/src/main/java/com/zy/core/model/DevpSlave.java index 3a79437..1763c3c 100644 --- a/src/main/java/com/zy/core/model/DevpSlave.java +++ b/src/main/java/com/zy/core/model/DevpSlave.java @@ -27,6 +27,8 @@ private List<Sta> pickSta = new ArrayList<>(); + private List<Sta> agvOutSta = new ArrayList<>(); + @Data public static class Sta { diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index cd66754..173bc03 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -239,6 +239,11 @@ outSta[0]: staNo: 124 led: ${wcs-slave.led[0].id} + agvOutSta[0]: + staNo: 140 + agvOutSta[1]: + staNo: 142 + devp[1]: id: 2 -- Gitblit v1.9.1