From 8c0d2c49eb091aedd053d8f7a1be28b67ce8d0c3 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期一, 27 十月 2025 18:47:51 +0800
Subject: [PATCH] *
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 176 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 172 insertions(+), 4 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 59c4749..5789190 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -4,9 +4,7 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
-import com.core.common.Cools;
-import com.core.common.DateUtils;
-import com.core.common.R;
+import com.core.common.*;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.AgvTaskAssignmentParam;
@@ -4591,6 +4589,174 @@
response, bool);
}
+ /*
+ * agv浠诲姟鐢熸垚 Full
+ * */
+ public synchronized void agvTaskCreateFull() {
+ // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ // 閬嶅巻鍑哄簱鍙�
+ for (DevpSlave.Sta outStaAgv : devp.getOutStaAgvFull()) {
+ // 鑾峰彇鍏ュ簱绔欎俊鎭�
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ StaProtocol staProtocol = devpThread.getStation().get(outStaAgv.getStaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+
+ // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+ if (!staProtocol.isLoading()){
+ continue;
+ }
+ if (staProtocol.isAutoing() ) {
+ WrkMast wrkMast = wrkMastService.selectByWrkNo(staProtocol.getWorkNo());
+ if (Cools.isEmpty(wrkMast) || Cools.isEmpty(wrkMast.getTakeNone()) || !wrkMast.getTakeNone().equals("1")){
+ continue;
+ }
+
+ // 鍒ゆ柇閲嶅宸ヤ綔妗�
+ List<BasAgvMast> basAgvMastList = basAgvMastService.selectList(new EntityWrapper<BasAgvMast>().eq("task_no", staProtocol.getWorkNo()));
+ if (!basAgvMastList.isEmpty()) {
+ wrkMast.setTakeNone("2");
+ wrkMastMapper.updateById(wrkMast);
+ continue;
+ }
+
+ // 浠诲姟鐢熸垚鍖� --------------------------------------------------------------------------
+
+ BasAgvMast basAgvMast = new BasAgvMast();
+
+
+ try {
+ LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
+
+ SearchLocParam param = new SearchLocParam();
+ param.setBarcode(wrkMast.getBarcode());
+ param.setIoType(1);
+ param.setSourceStaNo(outStaAgv.getStaNo());
+ param.setLocType1(locTypeDto.getLocType1());
+ String response = new HttpHandler.Builder()
+ .setUri(wmsUrl)
+ .setPath("/rpc/pakin/agv/loc/v1")
+ .setJson(JSON.toJSONString(param))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (jsonObject.getInteger("code").equals(200)) {
+ StartupDto dto = jsonObject.getObject("data", StartupDto.class);
+
+ basAgvMast.setTaskNo(wrkMast.getWrkNo());
+ basAgvMast.setSourceStaNo(outStaAgv.getStaNo());
+ basAgvMast.setLocNo(dto.getLocNo());
+ basAgvMast.setSourceLocNo(wrkMast.getSourceLocNo());
+ basAgvMast.setDevpId(devp.getId());
+ basAgvMast.setIoType(2);
+
+ basAgvMastService.insert(basAgvMast);
+
+
+ wrkMast.setTakeNone("2");
+ wrkMastMapper.updateById(wrkMast);
+ } else {
+ News.error(JSON.toJSONString(staProtocol));
+ }
+ } catch (Exception e) {
+ News.error(JSON.toJSONString(e.getMessage()));
+ }
+ }
+ }
+ }
+ }
+
+ /*
+ * agv浠诲姟鐢熸垚 Empty
+ * */
+ public synchronized void agvTaskCreateEmpty() {
+ // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ // 閬嶅巻鍑哄簱鍙�
+ for (DevpSlave.Sta outStaAgv : devp.getOutStaAgvEmpty()) {
+ // 鑾峰彇鍏ュ簱绔欎俊鎭�
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ StaProtocol staProtocol = devpThread.getStation().get(outStaAgv.getStaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+
+ // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+ if (!staProtocol.isLoading()){
+ continue;
+ }
+
+ String barcode = staProtocol.getBarcode();
+ if(!Cools.isEmpty(barcode)) {
+ if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+ News.info("{}鍙风珯鐐规壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", outStaAgv.getStaNo(), barcode);
+ continue;
+ }
+ } else {
+ News.info("{}鍙风珯鐐规壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", outStaAgv.getStaNo(), barcode);
+ continue;
+ }
+ if (staProtocol.isAutoing()) {
+
+ // 鍒ゆ柇閲嶅宸ヤ綔妗�
+ List<BasAgvMast> basAgvMastList = basAgvMastService.selectList(new EntityWrapper<BasAgvMast>().eq("source_sta_no", outStaAgv.getStaNo()));
+ if (!basAgvMastList.isEmpty()) {
+ News.info("{}鍙风珯鐐瑰瓨鍦ㄤ换鍔℃墽琛屼腑锛岃绛夊緟浠诲姟鎵ц瀹屾瘯锛歿}", outStaAgv.getStaNo(), barcode);
+ continue;
+ }
+
+ List<LocMast> locMastList = locMastService.selectList(new EntityWrapper<LocMast>().eq("barcode", barcode));
+ if (!locMastList.isEmpty()) {
+ News.info("{}鍙风珯鐐规潯鐮佷俊鎭噸澶嶏細{}", outStaAgv.getStaNo(), barcode);
+ continue;
+ }
+ // 浠诲姟鐢熸垚鍖� --------------------------------------------------------------------------
+
+ BasAgvMast basAgvMast = new BasAgvMast();
+
+
+ try {
+ LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
+
+ SearchLocParam param = new SearchLocParam();
+ param.setBarcode(barcode);
+ param.setIoType(1);
+ param.setSourceStaNo(outStaAgv.getStaNo());
+ param.setLocType1(locTypeDto.getLocType1());
+ String response = new HttpHandler.Builder()
+ .setUri(wmsUrl)
+ .setPath("/rpc/pakin/agv/loc/v1")
+ .setJson(JSON.toJSONString(param))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (jsonObject.getInteger("code").equals(200)) {
+ StartupDto dto = jsonObject.getObject("data", StartupDto.class);
+
+ basAgvMast.setTaskNo(outStaAgv.getStaNo());
+ basAgvMast.setSourceStaNo(outStaAgv.getStaNo());
+ basAgvMast.setLocNo(dto.getLocNo());
+ basAgvMast.setDevpId(devp.getId());
+ basAgvMast.setIoType(2);
+
+ basAgvMastService.insert(basAgvMast);
+ } else {
+ News.error(JSON.toJSONString(staProtocol));
+ }
+ } catch (Exception e) {
+ News.error(JSON.toJSONString(e.getMessage()));
+ }
+ }
+ }
+ }
+ }
+
/*
* agv浠诲姟涓嬪彂:AGV搴撲綅==銆嬭緭閫佺嚎绔欑偣
@@ -4685,7 +4851,9 @@
staProtocol = staProtocol.clone();
}
- if (!Cools.isEmpty(staProtocol.getWorkNo()) && staProtocol.getWorkNo().equals(basAgvMast.getTaskNo())){
+ if ((!Cools.isEmpty(staProtocol.getWorkNo()) && staProtocol.getWorkNo().equals(basAgvMast.getTaskNo()))
+ ||
+ (basAgvMast.getSourceStaNo().equals(2033))){
AgvTaskAssignmentParam agvTaskAssignmentParam = new AgvTaskAssignmentParam(basAgvMast);
--
Gitblit v1.9.1