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