From efbfaeac84218efcaf118f7080dfd550ee04da44 Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期三, 24 四月 2024 12:59:44 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java | 86 +++++++++++++++++++++++++++++++++++++++----
1 files changed, 78 insertions(+), 8 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 d048f5d..66c5915 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -7,6 +7,7 @@
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.CombParam;
import com.zy.asrs.entity.param.MobileAdjustParam;
+import com.zy.asrs.entity.param.PickParam;
import com.zy.asrs.service.*;
import com.zy.common.model.DetlDto;
import lombok.extern.slf4j.Slf4j;
@@ -44,6 +45,8 @@
private AgvWrkMastService agvWrkMastService;
@Autowired
private AgvWorkService agvWorkService;
+ @Autowired
+ private AgvWrkDetlService agvWrkDetlService;
/*
@@ -55,11 +58,12 @@
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("supp_code", param.getBarcode())) > 0) {
- throw new CoolException(param.getBarcode() + "鏂欐兂鐮佸凡瀛樺湪AGV鍏ュ簱閫氱煡妗d腑");
- }
+// //妫�鏌ユ槸鍚﹀凡瀛樺湪鐩稿悓鐨勬墭鐩樻潯鐮侊紝瀛樺湪鍒欐姏鍑哄紓甯�
+// 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())))){
@@ -89,6 +93,65 @@
}
/*
+ 缁勬墭 + 缁戝畾鏆傚瓨浣�
+ */
+ @Override
+ @Transactional
+ public String pickAgain(PickParam pickParams, Long userId) {
+ Date now = new Date();
+ List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", pickParams.getLocNo()));
+
+ for (PickParam.Pick pick : pickParams.getPicks()) {
+ if (pick.getCount().equals(0D)) continue;
+ AgvWrkDetl wrkDetl = new AgvWrkDetl();
+ Mat mat = matService.selectByMatnr(pick.getMatnr());
+ if (Cools.isEmpty(mat)) {
+ throw new CoolException(pick.getMatnr() + "鍟嗗搧涓嶅瓨鍦�");
+ }
+ wrkDetl.sync(mat);
+ wrkDetl.setWrkNo(pickParams.getWrkNo());
+ wrkDetl.setOrderNo(pick.getOrderNo());
+ wrkDetl.setIoTime(now);
+ wrkDetl.setAnfme(pick.getCount()); // 鏁伴噺
+ wrkDetl.setSuppCode(pick.getSuppCode()); // 鎵樼洏鏉$爜
+ wrkDetl.setAppeUser(userId);
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setModiUser(userId);
+ wrkDetl.setModiTime(now);
+ wrkDetl.setThreeCode(pick.getThreeCode());
+ agvWrkDetlService.insert(wrkDetl);
+
+ // 鏇存柊璁㈠崟
+ OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", pick.getOrderNo()).eq("matnr", pick.getMatnr()).eq("three_code",pick.getThreeCode()));
+ orderDetl.setQty(orderDetl.getQty() + pick.getCount());
+ if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no", pick.getOrderNo()).eq("matnr", pick.getMatnr()).eq("three_code",pick.getThreeCode()))){
+ throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"+pick.getOrderNo()+pick.getMatnr());
+ }
+ }
+ // 纭鏄惁鍏ㄩ儴鍑哄簱
+ int sameNumber = 0;
+ List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", pickParams.getWrkNo()));
+ for (AgvLocDetl agvLocDetl : agvLocDetls) {
+ for (AgvWrkDetl agvWrkDetl : agvWrkDetls) {
+ if (agvLocDetl.getMatnr().equals(agvWrkDetl.getMatnr())
+ && agvLocDetl.getThreeCode().equals(agvWrkDetl.getThreeCode())
+ && agvLocDetl.getSuppCode().equals(agvWrkDetl.getSuppCode())
+ && agvLocDetl.getAnfme().equals(agvWrkDetl.getAnfme())) {
+ sameNumber++;
+ }
+ }
+ }
+ if (agvLocDetls.size() == sameNumber) {
+ AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("wrk_no", pickParams.getWrkNo()));
+ agvWrkMast.setIoType(101);
+ agvWrkMastService.update(agvWrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no", pickParams.getWrkNo()));
+ }
+
+
+ return "缁勬墭鎴愬姛锛岀粦瀹氱珯鐐规垚鍔�";
+ }
+
+ /*
AGV鏃犲崟缁勬墭
*/
private void NoOrderComb(CombParam param, Long userId){
@@ -100,6 +163,8 @@
syncWaitPakin(detlDto,"",param.getBarcode(),userId,now);
});
}
+
+
/*
AGV鏈夊崟缁勬墭
@@ -141,7 +206,7 @@
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.getCsocode(), detlDto.getIsoseq(),null);
+ 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 {
@@ -221,17 +286,22 @@
@Override
public void combBinding(String barcode, String stationCode, Short containerType) {
+ AgvBasDevp agvBasDevp = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("dev_no", stationCode));
+
+ if(Cools.eq(agvBasDevp.getBarcode(),barcode)){
+ return;
+ }
+
if(Cools.isEmpty(agvWaitPakinService.selectByContainerCode(barcode))){
throw new CoolException("璇ユ枡绠辨湭缁勬墭锛屾棤娉曠粦瀹氱珯鐐�");
}
- AgvBasDevp agvBasDevp = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("barcode", barcode));
+ AgvBasDevp agvBasDevp1 = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("barcode", barcode));
- if(!Cools.isEmpty(agvBasDevp)){
+ 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 + "绔欑偣淇℃伅閿欒");
}
--
Gitblit v1.9.1