From 16b5ee9a6db2f21192d435dbf3dab71b5fad7804 Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期日, 14 四月 2024 19:34:48 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java | 90 +++++++++++++++++++++++++++++++++++++-------
1 files changed, 75 insertions(+), 15 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
index bf873fb..03ff560 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -18,6 +18,7 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.stream.Collectors;
/**
* 绉诲姩绔湇鍔℃牳蹇冪被
@@ -37,6 +38,12 @@
private OrderDetlService orderDetlService;
@Autowired
private AgvBasDevpService agvBasDevpService;
+ @Autowired
+ private AgvLocDetlService agvLocDetlService;
+ @Autowired
+ private AgvWrkMastService agvWrkMastService;
+ @Autowired
+ private AgvWorkService agvWorkService;
/*
@@ -48,11 +55,21 @@
if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) {
throw new CoolException(BaseRes.PARAM);
}
+ param.setContainerType(Short.valueOf(param.getBarcode().substring(0,2)));
- //妫�鏌ユ槸鍚﹀凡瀛樺湪鐩稿悓鐨勬墭鐩樻潯鐮侊紝瀛樺湪鍒欐姏鍑哄紓甯�
- if (agvWaitPakinService.selectCount(new EntityWrapper<AgvWaitPakin>().
- eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) {
- throw new CoolException(param.getBarcode() + "鏁版嵁姝e湪杩涜鍏ュ簱");
+// //妫�鏌ユ槸鍚﹀凡瀛樺湪鐩稿悓鐨勬墭鐩樻潯鐮侊紝瀛樺湪鍒欐姏鍑哄紓甯�
+// if (agvWaitPakinService.selectCount(new EntityWrapper<AgvWaitPakin>().eq("supp_code", param.getBarcode())) > 0) {
+// throw new CoolException(param.getBarcode() + "鏂欐兂鐮佸凡瀛樺湪AGV鍏ュ簱閫氱煡妗d腑");
+// }
+
+ //妫�鏌ュ簱瀛樻槸鍚︽湁鐩稿悓鏂欑锛屽瓨鍦ㄥ垯鎶涘嚭寮傚父
+ if(!Cools.isEmpty(agvLocDetlService.selectOne(new EntityWrapper<AgvLocDetl>().eq("supp_code",param.getBarcode())))){
+ throw new CoolException(param.getBarcode() + "鏂欑鐮佸凡瀛樺湪AGV搴撳瓨鏄庣粏涓�");
+ }
+
+ //鏌ョ湅宸ヤ綔妗f槸鍚︽湁鐩稿悓鏂欑锛屽瓨鍦ㄥ垯鎶涘嚭寮傚父
+ if(!Cools.isEmpty(agvWrkMastService.selectByContainerCode(param.getBarcode()))){
+ throw new CoolException(param.getBarcode() + "鏂欑鐮佸凡瀛樺湪AGV宸ヤ綔妗d腑");
}
if (Cools.isEmpty(param.getOrderNo())) {
@@ -66,7 +83,7 @@
if(StringUtils.isEmpty(param.getLocno())){
return "缁勬墭鎴愬姛";
}else {
- combBinding(param.getBarcode(),param.getLocno());
+ combBinding(param.getBarcode(),param.getLocno(),param.getContainerType());
return "缁勬墭鎴愬姛锛岀粦瀹氱珯鐐规垚鍔�";
}
@@ -122,10 +139,10 @@
checkOrderQty(order,combMat);
}
- DetlDto detlDto = new DetlDto(combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme());
+ DetlDto detlDto = new DetlDto(combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme(), combMat.getCsocode(), combMat.getIsoseq(),combMat.getContainerCode(),param.getLocType());
//鍚屼竴鎵樼洏涓嬬浉鍚岀墿鏂欎俊鎭拰鎵瑰彿杞负涓�涓叆搴撻�氱煡妗�
if (DetlDto.has(detlDtos, detlDto)) {
- DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
+ DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(), detlDto.getCsocode(), detlDto.getIsoseq(),detlDto.getContainerCode());
assert one != null;
one.setAnfme(one.getAnfme() + detlDto.getAnfme());
} else {
@@ -141,7 +158,7 @@
*/
private void checkOrderQty(Order order, CombParam.CombMat combMat){
// 璁㈠崟鏄庣粏鏁伴噺鏍¢獙锛屽鏋滀綔涓氭暟閲忓ぇ浜庡崟鎹暟閲忓垯鎶涘嚭寮傚父
- OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), combMat.getMatnr(), combMat.getBatch());
+ OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), combMat.getMatnr(), combMat.getBatch(), combMat.getCsocode(),combMat.getIsoseq());
if(Cools.isEmpty(orderDetl)){
throw new CoolException("鏈尮閰嶅埌璇ュ崟鎹笅鐨勭墿鏂�");
}
@@ -149,7 +166,7 @@
throw new CoolException(orderDetl.getMatnr() + "鍏ュ簱鏁伴噺涓嶅悎娉�");
}
// 淇敼璁㈠崟鏄庣粏鏁伴噺
- if (!orderDetlService.increase(order.getId(), combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme())) {
+ if (!orderDetlService.increase(order.getId(), combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme(), combMat.getCsocode(),combMat.getIsoseq())) {
throw new CoolException("淇敼鍗曟嵁鏄庣粏鏁伴噺澶辫触");
}
}
@@ -166,10 +183,20 @@
waitPakin.sync(mat);
waitPakin.setOrderNo(orderNo); // 鍗曟嵁缂栧彿
waitPakin.setBatch(detlDto.getBatch()); // 搴忓垪鐮�
- waitPakin.setZpallet(zpallet); // 鎵樼洏鐮�
+ //waitPakin.setZpallet(zpallet); // 鎵樼洏鐮�
+ waitPakin.setSuppCode(zpallet); // 鎵樼洏鐮�
waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵��
waitPakin.setAnfme(detlDto.getAnfme()); // 鏁伴噺
waitPakin.setStatus("Y"); // 鐘舵��
+
+ ////閿�鍞鍗曞彿
+ waitPakin.setThreeCode(detlDto.getCsocode());
+ //閿�鍞鍗曡鍙�
+ waitPakin.setDeadTime(detlDto.getIsoseq());
+
+ waitPakin.setLocType(detlDto.getLocType());
+
+
waitPakin.setAppeUser(userId);
waitPakin.setAppeTime(now);
waitPakin.setModiUser(userId);
@@ -193,31 +220,64 @@
}
@Override
- public void combBinding(String barcode, String stationCode) {
+ public void combBinding(String barcode, String stationCode, Short containerType) {
- AgvBasDevp agvBasDevp = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("barcode", barcode));
+ AgvBasDevp agvBasDevp = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("dev_no", stationCode));
- if(!Cools.isEmpty(agvBasDevp)){
+ if(Cools.eq(agvBasDevp.getBarcode(),barcode)){
+ return;
+ }
+
+ if(Cools.isEmpty(agvWaitPakinService.selectByContainerCode(barcode))){
+ throw new CoolException("璇ユ枡绠辨湭缁勬墭锛屾棤娉曠粦瀹氱珯鐐�");
+ }
+
+ AgvBasDevp agvBasDevp1 = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("barcode", barcode));
+
+ if(!Cools.isEmpty(agvBasDevp1)){
throw new CoolException(barcode + "宸茬粡缁戝畾鍦�"+ agvBasDevp.getDevNo() +"绔欑偣");
}
- agvBasDevp = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("dev_no",stationCode));
if(agvBasDevp == null){
throw new CoolException(stationCode + "绔欑偣淇℃伅閿欒");
}
if(!"O".equals(agvBasDevp.getLocSts())){
throw new CoolException(stationCode + "璇ョ珯鐐硅揣浣嶇姸鎬侀潪绌�");
}
+ AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", agvBasDevp.getDevNo()));
+ if(!Cools.isEmpty(agvWrkMast)){
+ throw new CoolException(stationCode + "璇ョ珯鐐瑰凡琚伐浣滃彿涓�" + agvWrkMast.getWrkNo() + "鍗犵敤锛屾棤娉曠粦瀹�");
+ }
agvBasDevp.setBarcode(barcode);
agvBasDevp.setLocSts("F");
+ agvBasDevp.setLocType2(containerType);
agvBasDevpService.update(agvBasDevp,(new EntityWrapper<AgvBasDevp>().eq("dev_no",stationCode)));
}
public List<AgvBasDevp> getAgvBasDevpByFloor(int floor) {
EntityWrapper<AgvBasDevp> wrapper = new EntityWrapper<>();
wrapper.eq("floor",floor).eq("cache_shelves","Y").eq("loc_sts","F");
- return agvBasDevpService.selectList(wrapper);
+ List<AgvBasDevp> agvBasDevpList = agvBasDevpService.selectList(wrapper);
+ return agvBasDevpList.stream().filter(agvBasDevp -> {
+ return !Cools.isEmpty(agvWaitPakinService.selectByContainerCode(agvBasDevp.getBarcode()));
+ }).collect(Collectors.toList());
+ }
+
+ @Override
+ public void pakinEmpty(String devNo, boolean pakin) {
+ //褰撳墠绔欑偣淇℃伅
+ AgvBasDevp agvBasDevp = agvBasDevpService.selectById(devNo);
+ //瀵绘壘鐩稿悓绫诲瀷鐨勫簱浣�
+
+ //鐢熸垚绌虹洏宸ヤ綔妗�
+
+ //鏇存敼搴撲綅鐘舵�佷互鍙婄珯鐐圭姸鎬�
+ }
+
+ @Override
+ public void pakoutEmpty(String devNo) {
+
}
}
--
Gitblit v1.9.1