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/asrs/service/impl/MainServiceImpl.java | 99 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 99 insertions(+), 0 deletions(-) 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; + } + + -- Gitblit v1.9.1